瀏覽代碼

完善添加动态表格逻辑

韩帛霖 1 年之前
父節點
當前提交
2935caa432

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dragForm/DragTableController.java

@@ -94,7 +94,7 @@ public class DragTableController extends BaseController {
     }
     }
 
 
     /**
     /**
-     * 新增动态表格
+     * 新增动态表格模版数据
      */
      */
     @PostMapping("/addDragTable")
     @PostMapping("/addDragTable")
     public AjaxResult addDragTable(@RequestBody DragTableVo dragTableVo){
     public AjaxResult addDragTable(@RequestBody DragTableVo dragTableVo){

+ 133 - 87
ruoyi-system/src/main/java/com/ruoyi/system/entity/DragTableCondition.java

@@ -10,176 +10,228 @@ import java.util.Map;
 
 
 /**
 /**
  * 动态格条件对象 drag_table_condition
  * 动态格条件对象 drag_table_condition
- * 
+ *
  * @author ruoyi
  * @author ruoyi
  * @date 2023-07-31
  * @date 2023-07-31
  */
  */
-public class DragTableCondition extends BaseEntity
-{
+public class DragTableCondition extends BaseEntity {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
-    /** 编号 */
+    /**
+     * 编号
+     */
     private Long tcId;
     private Long tcId;
 
 
-    /** 动态表格编号 */
+    /**
+     * 动态表格编号
+     */
     @Excel(name = "动态表格编号")
     @Excel(name = "动态表格编号")
     private Long tId;
     private Long tId;
 
 
-    /** 条件名称 */
+    /**
+     * 条件名称
+     */
     @Excel(name = "条件名称")
     @Excel(name = "条件名称")
     private String conditionName;
     private String conditionName;
 
 
-    /** 条件字段 */
+    /**
+     * 条件字段
+     */
     @Excel(name = "条件字段")
     @Excel(name = "条件字段")
     private String conditionField;
     private String conditionField;
 
 
-    /** 条件描述 */
+    /**
+     * 条件描述
+     */
     @Excel(name = "条件描述")
     @Excel(name = "条件描述")
     private String conditionNotes;
     private String conditionNotes;
 
 
-    /** 条件类型 */
+    /**
+     * 条件类型
+     */
     @Excel(name = "条件类型")
     @Excel(name = "条件类型")
     private String conditionType;
     private String conditionType;
 
 
-    /** 默认值 */
+    /**
+     * 默认值
+     */
     @Excel(name = "默认值")
     @Excel(name = "默认值")
     private String conditionDefaultValue;
     private String conditionDefaultValue;
 
 
-    /** 排序 */
+    /**
+     * 排序
+     */
     @Excel(name = "排序")
     @Excel(name = "排序")
     private Long sort;
     private Long sort;
 
 
-    /** 表名称(下拉框关联) */
+    /**
+     * 表名称(下拉框关联)
+     */
     @Excel(name = "表名称", readConverterExp = "下=拉框关联")
     @Excel(name = "表名称", readConverterExp = "下=拉框关联")
     private String conditionTableName;
     private String conditionTableName;
 
 
-    /** 表字段名称(下拉框关联)/ 字典类型 */
+    /**
+     * 表字段名称(下拉框关联)/ 字典类型
+     */
     @Excel(name = "表字段名称", readConverterExp = "下=拉框关联")
     @Excel(name = "表字段名称", readConverterExp = "下=拉框关联")
     private String conditionTableFieldName;
     private String conditionTableFieldName;
 
 
-    /** 表字段key(下拉框关联)/ 唯一标识 */
+    /**
+     * 表字段key(下拉框关联)/ 唯一标识
+     */
     @Excel(name = "表字段key", readConverterExp = "下=拉框关联")
     @Excel(name = "表字段key", readConverterExp = "下=拉框关联")
     private String conditionTableFieldKey;
     private String conditionTableFieldKey;
 
 
-    /** 数据来源(0:字典;1:表字段) */
+    /**
+     * 数据来源(0:字典;1:表字段)
+     */
     @Excel(name = "数据来源", readConverterExp = "0=:字典;1:表字段")
     @Excel(name = "数据来源", readConverterExp = "0=:字典;1:表字段")
     private String conditionDatasource;
     private String conditionDatasource;
 
 
-    /** 组件类型(时间组件、btn等type类型参照element官方api中的类型 )
+    /**
+     * 组件类型(时间组件、btn等type类型参照element官方api中的类型 )
      */
      */
     @Excel(name = "组件类型", readConverterExp = "时=间组件、btn等type类型参照element官方api中的类型")
     @Excel(name = "组件类型", readConverterExp = "时=间组件、btn等type类型参照element官方api中的类型")
     private String componentType;
     private String componentType;
 
 
-    /** 组件大小 */
+    /**
+     * 组件大小
+     */
     @Excel(name = "组件大小")
     @Excel(name = "组件大小")
     private String componentSize;
     private String componentSize;
 
 
-    /** 组件图标 */
+    /**
+     * 组件图标
+     */
     @Excel(name = "组件图标")
     @Excel(name = "组件图标")
     private String componentIcon;
     private String componentIcon;
 
 
-    /** 是否隐藏(0 显示; 1 隐藏) */
+    /**
+     * 是否隐藏(0 显示; 1 隐藏)
+     */
     @Excel(name = "是否隐藏(0 显示; 1 隐藏)")
     @Excel(name = "是否隐藏(0 显示; 1 隐藏)")
     private String isHidden;
     private String isHidden;
 
 
-    /** 逻辑删除(0 否; 1 是) */
+    /**
+     * 逻辑删除(0 否; 1 是)
+     */
     private String delFlag;
     private String delFlag;
 
 
-    /** 下拉框列表 */
-    List<Map<String,Object>> dropDownList;
+    /**
+     * 下拉框列表
+     */
+    List<Map<String, Object>> dropDownList;
+
+    public DragTableCondition() {
+    }
+
+    public DragTableCondition(Long tId, String conditionField) {
+        this.tId = tId;
+        this.conditionField = conditionField;
+    }
+
+    public DragTableCondition(Long tcId, Long tId, String conditionName, String conditionField, String conditionNotes, String conditionType, String conditionDefaultValue, Long sort, String conditionTableName, String conditionTableFieldName, String conditionTableFieldKey, String conditionDatasource, String componentType, String componentSize, String componentIcon, String isHidden, String delFlag, List<Map<String, Object>> dropDownList) {
+        this.tcId = tcId;
+        this.tId = tId;
+        this.conditionName = conditionName;
+        this.conditionField = conditionField;
+        this.conditionNotes = conditionNotes;
+        this.conditionType = conditionType;
+        this.conditionDefaultValue = conditionDefaultValue;
+        this.sort = sort;
+        this.conditionTableName = conditionTableName;
+        this.conditionTableFieldName = conditionTableFieldName;
+        this.conditionTableFieldKey = conditionTableFieldKey;
+        this.conditionDatasource = conditionDatasource;
+        this.componentType = componentType;
+        this.componentSize = componentSize;
+        this.componentIcon = componentIcon;
+        this.isHidden = isHidden;
+        this.delFlag = delFlag;
+        this.dropDownList = dropDownList;
+    }
 
 
-    public void setTcId(Long tcId)
-    {
+    public void setTcId(Long tcId) {
         this.tcId = tcId;
         this.tcId = tcId;
     }
     }
 
 
-    public Long getTcId()
-    {
+    public Long getTcId() {
         return tcId;
         return tcId;
     }
     }
-    public void settId(Long tId)
-    {
+
+    public void settId(Long tId) {
         this.tId = tId;
         this.tId = tId;
     }
     }
 
 
-    public Long gettId()
-    {
+    public Long gettId() {
         return tId;
         return tId;
     }
     }
-    public void setConditionName(String conditionName)
-    {
+
+    public void setConditionName(String conditionName) {
         this.conditionName = conditionName;
         this.conditionName = conditionName;
     }
     }
 
 
-    public String getConditionName()
-    {
+    public String getConditionName() {
         return conditionName;
         return conditionName;
     }
     }
-    public void setConditionField(String conditionField)
-    {
+
+    public void setConditionField(String conditionField) {
         this.conditionField = conditionField;
         this.conditionField = conditionField;
     }
     }
 
 
-    public String getConditionField()
-    {
+    public String getConditionField() {
         return conditionField;
         return conditionField;
     }
     }
-    public void setConditionNotes(String conditionNotes)
-    {
+
+    public void setConditionNotes(String conditionNotes) {
         this.conditionNotes = conditionNotes;
         this.conditionNotes = conditionNotes;
     }
     }
 
 
-    public String getConditionNotes()
-    {
+    public String getConditionNotes() {
         return conditionNotes;
         return conditionNotes;
     }
     }
-    public void setConditionType(String conditionType)
-    {
+
+    public void setConditionType(String conditionType) {
         this.conditionType = conditionType;
         this.conditionType = conditionType;
     }
     }
 
 
-    public String getConditionType()
-    {
+    public String getConditionType() {
         return conditionType;
         return conditionType;
     }
     }
-    public void setConditionDefaultValue(String conditionDefaultValue)
-    {
+
+    public void setConditionDefaultValue(String conditionDefaultValue) {
         this.conditionDefaultValue = conditionDefaultValue;
         this.conditionDefaultValue = conditionDefaultValue;
     }
     }
 
 
-    public String getConditionDefaultValue()
-    {
+    public String getConditionDefaultValue() {
         return conditionDefaultValue;
         return conditionDefaultValue;
     }
     }
-    public void setSort(Long sort)
-    {
+
+    public void setSort(Long sort) {
         this.sort = sort;
         this.sort = sort;
     }
     }
 
 
-    public Long getSort()
-    {
+    public Long getSort() {
         return sort;
         return sort;
     }
     }
-    public void setConditionTableName(String conditionTableName)
-    {
+
+    public void setConditionTableName(String conditionTableName) {
         this.conditionTableName = conditionTableName;
         this.conditionTableName = conditionTableName;
     }
     }
 
 
-    public String getConditionTableName()
-    {
+    public String getConditionTableName() {
         return conditionTableName;
         return conditionTableName;
     }
     }
-    public void setConditionTableFieldName(String conditionTableFieldName)
-    {
+
+    public void setConditionTableFieldName(String conditionTableFieldName) {
         this.conditionTableFieldName = conditionTableFieldName;
         this.conditionTableFieldName = conditionTableFieldName;
     }
     }
 
 
-    public String getConditionTableFieldName()
-    {
+    public String getConditionTableFieldName() {
         return conditionTableFieldName;
         return conditionTableFieldName;
     }
     }
-    public void setConditionDatasource(String conditionDatasource)
-    {
+
+    public void setConditionDatasource(String conditionDatasource) {
         this.conditionDatasource = conditionDatasource;
         this.conditionDatasource = conditionDatasource;
     }
     }
 
 
@@ -191,53 +243,47 @@ public class DragTableCondition extends BaseEntity
         this.conditionTableFieldKey = conditionTableFieldKey;
         this.conditionTableFieldKey = conditionTableFieldKey;
     }
     }
 
 
-    public String getConditionDatasource()
-    {
+    public String getConditionDatasource() {
         return conditionDatasource;
         return conditionDatasource;
     }
     }
-    public void setComponentType(String componentType)
-    {
+
+    public void setComponentType(String componentType) {
         this.componentType = componentType;
         this.componentType = componentType;
     }
     }
 
 
-    public String getComponentType()
-    {
+    public String getComponentType() {
         return componentType;
         return componentType;
     }
     }
-    public void setComponentSize(String componentSize)
-    {
+
+    public void setComponentSize(String componentSize) {
         this.componentSize = componentSize;
         this.componentSize = componentSize;
     }
     }
 
 
-    public String getComponentSize()
-    {
+    public String getComponentSize() {
         return componentSize;
         return componentSize;
     }
     }
-    public void setComponentIcon(String componentIcon)
-    {
+
+    public void setComponentIcon(String componentIcon) {
         this.componentIcon = componentIcon;
         this.componentIcon = componentIcon;
     }
     }
 
 
-    public String getComponentIcon()
-    {
+    public String getComponentIcon() {
         return componentIcon;
         return componentIcon;
     }
     }
-    public void setIsHidden(String isHidden)
-    {
+
+    public void setIsHidden(String isHidden) {
         this.isHidden = isHidden;
         this.isHidden = isHidden;
     }
     }
 
 
-    public String getIsHidden()
-    {
+    public String getIsHidden() {
         return isHidden;
         return isHidden;
     }
     }
-    public void setDelFlag(String delFlag)
-    {
+
+    public void setDelFlag(String delFlag) {
         this.delFlag = delFlag;
         this.delFlag = delFlag;
     }
     }
 
 
-    public String getDelFlag()
-    {
+    public String getDelFlag() {
         return delFlag;
         return delFlag;
     }
     }
 
 
@@ -251,7 +297,7 @@ public class DragTableCondition extends BaseEntity
 
 
     @Override
     @Override
     public String toString() {
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                 .append("tcId", getTcId())
                 .append("tcId", getTcId())
                 .append("tId", gettId())
                 .append("tId", gettId())
                 .append("conditionName", getConditionName())
                 .append("conditionName", getConditionName())

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/DragTableConditionMapper.java

@@ -26,6 +26,11 @@ public interface DragTableConditionMapper
      */
      */
     int insertDragTableCondition(@Param("fieldNames") Set<String> fieldNames,@Param("fieldValues") List<Map<String, Object>> fieldValues);
     int insertDragTableCondition(@Param("fieldNames") Set<String> fieldNames,@Param("fieldValues") List<Map<String, Object>> fieldValues);
 
 
+    /**
+     * 新增动态格条件
+     */
+    int insertDragTableConditionByList(List<DragTableCondition> conditionList);
+
     /**
     /**
      * 修改动态格条件
      * 修改动态格条件
      */
      */

+ 29 - 23
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CommonServiceImpl.java

@@ -41,7 +41,7 @@ public class CommonServiceImpl implements ICommonService {
     @Override
     @Override
     public int batchInsert(CommonEntity commonEntity) {
     public int batchInsert(CommonEntity commonEntity) {
         String tableName = (String) commonEntity.getBasicMap().get("tableName");
         String tableName = (String) commonEntity.getBasicMap().get("tableName");
-        List<Map<String, String>> list =  commonEntity.getAddListMap();
+        List<Map<String, String>> list = commonEntity.getAddListMap();
         List<Map<String, Object>> mapList = new ArrayList<>();
         List<Map<String, Object>> mapList = new ArrayList<>();
         for (Object obj : list) {
         for (Object obj : list) {
             System.out.println(obj);
             System.out.println(obj);
@@ -76,28 +76,34 @@ public class CommonServiceImpl implements ICommonService {
     public List<CommonEntity> queryTableList(CommonEntity commonEntity, TableSql tableSql) {
     public List<CommonEntity> queryTableList(CommonEntity commonEntity, TableSql tableSql) {
         // 根据sqlkey查询得到当前表单对应的sql
         // 根据sqlkey查询得到当前表单对应的sql
         Map<String, Object> conditions = JSONObject.parseObject(JSON.toJSONString(commonEntity.getQueryMap()));
         Map<String, Object> conditions = JSONObject.parseObject(JSON.toJSONString(commonEntity.getQueryMap()));
-        // sql当中拼接好条件格式 后台使用AND分割 拼接条件
-        //  and 。。。。 and 。。。。 and。。。。
-        StringBuilder endSQL = new StringBuilder();
-        endSQL.append("" + tableSql.getTableSql() + " where 1=1 ");
-        String[] whereTerm = tableSql.getTableCondition().split("AND");
-        List<String> test = Arrays.asList(whereTerm);
-        // 拼接条件
-        if (conditions != null) conditions.forEach((key, val) -> {
-            String sqlWhere = "";
-            try {
-                // 把前端回传的查询参数值名称驼峰转下划线命名,进行筛选是否存在匹配项
-                sqlWhere = test.stream().filter(item -> item.contains(toUnderScoreCase(key))).findAny().get();
-            } catch (NoSuchElementException e) {
-                return;
-            }
-            if (sqlWhere.indexOf("#{timeframe}") != -1 && !val.toString().isEmpty()) {  // 时间范围查询拼接
-                endSQL.append(" AND " + sqlWhere.replace("#{timeframe}", "'" + val.toString().split(",")[0] + "'" + " and " + "'" + val.toString().split(",")[1] + "'"));
-            } else if (sqlWhere.indexOf("#{val}") != -1 && !val.toString().isEmpty()) { // 寻常条件拼接
-                endSQL.append(" AND " + sqlWhere.replace("#{val}", val.toString()));
-            }
-        });
-        return commonMapper.queryTableList(endSQL.toString());
+
+
+        return null;
+        /**
+         * 多个文本框查询拼接查询 废弃保留代码
+         // sql当中拼接好条件格式 后台使用AND分割 拼接条件
+         //  and 。。。。 and 。。。。 and。。。。
+         StringBuilder endSQL = new StringBuilder();
+         endSQL.append("" + tableSql.getTableSql() + " where 1=1 ");
+         String[] whereTerm = tableSql.getTableCondition().split("AND");
+         List<String> test = Arrays.asList(whereTerm);
+         // 拼接条件
+         if (conditions != null) conditions.forEach((key, val) -> {
+         String sqlWhere = "";
+         try {
+         // 把前端回传的查询参数值名称驼峰转下划线命名,进行筛选是否存在匹配项
+         sqlWhere = test.stream().filter(item -> item.contains(toUnderScoreCase(key))).findAny().get();
+         } catch (NoSuchElementException e) {
+         return;
+         }
+         if (sqlWhere.indexOf("#{timeframe}") != -1 && !val.toString().isEmpty()) {  // 时间范围查询拼接
+         endSQL.append(" AND " + sqlWhere.replace("#{timeframe}", "'" + val.toString().split(",")[0] + "'" + " and " + "'" + val.toString().split(",")[1] + "'"));
+         } else if (sqlWhere.indexOf("#{val}") != -1 && !val.toString().isEmpty()) { // 寻常条件拼接
+         endSQL.append(" AND " + sqlWhere.replace("#{val}", val.toString()));
+         }
+         });
+         return commonMapper.queryTableList(endSQL.toString());
+         */
     }
     }
 
 
     @Override
     @Override

+ 62 - 37
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragTableServiceImpl.java

@@ -1,10 +1,12 @@
 package com.ruoyi.system.service.impl;
 package com.ruoyi.system.service.impl;
 
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
+import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
 import com.ruoyi.system.entity.CommonEntity;
 import com.ruoyi.system.entity.CommonEntity;
@@ -26,13 +28,12 @@ import javax.annotation.Resource;
 
 
 /**
 /**
  * 动态格Service业务层处理
  * 动态格Service业务层处理
- * 
+ *
  * @author ruoyi
  * @author ruoyi
  * @date 2023-07-31
  * @date 2023-07-31
  */
  */
 @Service
 @Service
-public class DragTableServiceImpl implements IDragTableService 
-{
+public class DragTableServiceImpl implements IDragTableService {
     @Autowired
     @Autowired
     private DragTableMapper dragTableMapper;
     private DragTableMapper dragTableMapper;
 
 
@@ -47,128 +48,152 @@ public class DragTableServiceImpl implements IDragTableService
 
 
     /**
     /**
      * 查询动态格
      * 查询动态格
-     * 
+     *
      * @param tId 动态格主键
      * @param tId 动态格主键
      * @return 动态格
      * @return 动态格
      */
      */
     @Override
     @Override
-    public DragTable selectDragTableByTId(Long tId)
-    {
+    public DragTable selectDragTableByTId(Long tId) {
         return dragTableMapper.selectDragTableByTId(tId);
         return dragTableMapper.selectDragTableByTId(tId);
     }
     }
 
 
     /**
     /**
      * 查询动态格列表
      * 查询动态格列表
-     * 
+     *
      * @param dragTable 动态格
      * @param dragTable 动态格
      * @return 动态格
      * @return 动态格
      */
      */
     @Override
     @Override
-    public List<DragTable> selectDragTableList(DragTable dragTable)
-    {
+    public List<DragTable> selectDragTableList(DragTable dragTable) {
         return dragTableMapper.selectDragTableList(dragTable);
         return dragTableMapper.selectDragTableList(dragTable);
     }
     }
 
 
     /**
     /**
      * 新增动态格
      * 新增动态格
-     * 
+     *
      * @param dragTable 动态格
      * @param dragTable 动态格
      * @return 结果
      * @return 结果
      */
      */
     @Override
     @Override
-    public int insertDragTable(DragTable dragTable)
-    {
+    public int insertDragTable(DragTable dragTable) {
         dragTable.setCreateTime(DateUtils.getNowDate());
         dragTable.setCreateTime(DateUtils.getNowDate());
         return dragTableMapper.insertDragTable(dragTable);
         return dragTableMapper.insertDragTable(dragTable);
     }
     }
 
 
     /**
     /**
      * 修改动态格
      * 修改动态格
-     * 
+     *
      * @param dragTable 动态格
      * @param dragTable 动态格
      * @return 结果
      * @return 结果
      */
      */
     @Override
     @Override
-    public int updateDragTable(DragTable dragTable)
-    {
+    public int updateDragTable(DragTable dragTable) {
         dragTable.setUpdateTime(DateUtils.getNowDate());
         dragTable.setUpdateTime(DateUtils.getNowDate());
         return dragTableMapper.updateDragTable(dragTable);
         return dragTableMapper.updateDragTable(dragTable);
     }
     }
 
 
     /**
     /**
      * 批量删除动态格
      * 批量删除动态格
-     * 
+     *
      * @param tIds 需要删除的动态格主键
      * @param tIds 需要删除的动态格主键
      * @return 结果
      * @return 结果
      */
      */
     @Override
     @Override
-    public int deleteDragTableByTIds(Long[] tIds)
-    {
+    public int deleteDragTableByTIds(Long[] tIds) {
         return dragTableMapper.deleteDragTableByTIds(tIds);
         return dragTableMapper.deleteDragTableByTIds(tIds);
     }
     }
 
 
     /**
     /**
      * 删除动态格信息
      * 删除动态格信息
-     * 
+     *
      * @param tId 动态格主键
      * @param tId 动态格主键
      * @return 结果
      * @return 结果
      */
      */
     @Override
     @Override
-    public int deleteDragTableByTId(Long tId)
-    {
+    public int deleteDragTableByTId(Long tId) {
         return dragTableMapper.deleteDragTableByTId(tId);
         return dragTableMapper.deleteDragTableByTId(tId);
     }
     }
 
 
     @Override
     @Override
     public CommonEntity dragTableInfo(String sqlKey) {
     public CommonEntity dragTableInfo(String sqlKey) {
         DragTable dragTable = dragTableMapper.selectDragTableBySqlKey(sqlKey);
         DragTable dragTable = dragTableMapper.selectDragTableBySqlKey(sqlKey);
-        Map<String,Object> resultMap = new HashMap<>();
-        resultMap.put("template",dragTable);
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("template", dragTable);
 //        resultMap.put("where",dragTableConditionMapper.selectDragTableConditionByTid(dragTable.gettId()));
 //        resultMap.put("where",dragTableConditionMapper.selectDragTableConditionByTid(dragTable.gettId()));
 
 
         List<DragTableCondition> dragTableConditions = dragTableConditionMapper.selectDragTableConditionByTid(dragTable.gettId());
         List<DragTableCondition> dragTableConditions = dragTableConditionMapper.selectDragTableConditionByTid(dragTable.gettId());
         dragTableConditions.forEach(d -> {
         dragTableConditions.forEach(d -> {
             // 0 查询字典 1 查询表数据
             // 0 查询字典 1 查询表数据
-            if(d.getConditionDatasource() != null && d.getConditionDatasource().equals("0")){
+            if (d.getConditionDatasource() != null && d.getConditionDatasource().equals("0")) {
                 d.setDropDownList(commonMapper.selectDropDownListByDict(d.getConditionTableName()));
                 d.setDropDownList(commonMapper.selectDropDownListByDict(d.getConditionTableName()));
-            }else if(d.getConditionDatasource() != null && d.getConditionDatasource().equals("1")){
-                d.setDropDownList(commonMapper.selectDropDownList(d.getConditionTableName(),d.getConditionTableFieldKey(),d.getConditionTableFieldName(),new HashMap<>()));
+            } else if (d.getConditionDatasource() != null && d.getConditionDatasource().equals("1")) {
+                d.setDropDownList(commonMapper.selectDropDownList(d.getConditionTableName(), d.getConditionTableFieldKey(), d.getConditionTableFieldName(), new HashMap<>()));
             }
             }
         });
         });
-        resultMap.put("where",dragTableConditions);
-        resultMap.put("querySql",tableSqlMapper.selectTableSqlByTSqlKey(sqlKey));
+        resultMap.put("where", dragTableConditions);
+        resultMap.put("querySql", tableSqlMapper.selectTableSqlByTSqlKey(sqlKey));
         CommonEntity commonEntity = new CommonEntity();
         CommonEntity commonEntity = new CommonEntity();
         commonEntity.setResultMap(resultMap);
         commonEntity.setResultMap(resultMap);
         return commonEntity;
         return commonEntity;
     }
     }
 
 
+    static String SQL_START = "CONCAT(";
+    static final String SQL_MIDDLE = "IFNULL( #{VAL}, '' )";
+    static final String SQLSERVER_MIDDLE = "COALESCE( #{VAL}, '' )";
+    static final String SQL_END = "LIKE '%#{val}%'";
+
     @Transactional
     @Transactional
     @Override
     @Override
     public int addDragTable(DragTableVo dragTableVo) {
     public int addDragTable(DragTableVo dragTableVo) {
-
         //生成dtNickname表格别名
         //生成dtNickname表格别名
         String dtNickname = IdUtils.fastSimpleUUID();
         String dtNickname = IdUtils.fastSimpleUUID();
         //生成sqlKey唯一标识
         //生成sqlKey唯一标识
         String sqlKey = IdUtils.fastSimpleUUID();
         String sqlKey = IdUtils.fastSimpleUUID();
-
         //add drag_table
         //add drag_table
         DragTable dragTable = new DragTable();
         DragTable dragTable = new DragTable();
-        BeanUtils.copyProperties(dragTableVo,dragTable);
+        BeanUtils.copyProperties(dragTableVo, dragTable);
         dragTable.setDtTableName(dtNickname);
         dragTable.setDtTableName(dtNickname);
         dragTable.setSqlKey(sqlKey);
         dragTable.setSqlKey(sqlKey);
-        dragTable.setDtColumnName(dragTableVo.getDtColumnName().toString());
-
+        dragTable.setDtColumnName(JSON.toJSONString(dragTableVo.getDtColumnName()));
         //add table_sql
         //add table_sql
         TableSql tableSql = new TableSql();
         TableSql tableSql = new TableSql();
         tableSql.setTableSql(dragTableVo.getTableSql());
         tableSql.setTableSql(dragTableVo.getTableSql());
-        tableSql.setTableCondition(dragTableVo.getSearchFieldList().stream().collect(Collectors.joining(",")));
+        dragTableMapper.insertDragTable(dragTable);
+        // 拼接sql查询条件
+        switch ("MYSQL") {
+            case "MYSQL":
+            case "DM":
+                for (int i = 0; dragTableVo.getSearchFieldList().size() > i; i++) {
+                    SQL_START += SQL_MIDDLE.replace("#{VAL}", dragTableVo.getSearchFieldList().get(i));
+                    SQL_START += dragTableVo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
+                }
+                break;
+            case "SQLSERVER":
+                for (int i = 0; dragTableVo.getSearchFieldList().size() > i; i++) {
+                    SQL_START += SQLSERVER_MIDDLE.replace("#{VAL}", dragTableVo.getSearchFieldList().get(i));
+                    SQL_START += dragTableVo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
+                }
+                break;
+            case "ORACLE":
+                SQL_START = "";
+                for (int i = 0; dragTableVo.getSearchFieldList().size() > i; i++) {
+                    SQL_START += dragTableVo.getSearchFieldList().get(i);
+                    SQL_START += dragTableVo.getSearchFieldList().size() - 1 == i ? " " : "||";
+                }
+                break;
+        }
+        tableSql.setTableCondition(SQL_START + SQL_END);
         tableSql.setTableAlias(dragTableVo.getDtTableName());
         tableSql.setTableAlias(dragTableVo.getDtTableName());
         tableSql.setSqlKey(sqlKey);
         tableSql.setSqlKey(sqlKey);
-        tableSql.setTableExportField(dragTableVo.getTableExportField().toString());
+        tableSql.setTableExportField(JSON.toJSONString(dragTableVo.getTableExportField()));
         tableSqlMapper.insertTableSql(tableSql);
         tableSqlMapper.insertTableSql(tableSql);
-
         //add drag_table_condition
         //add drag_table_condition
+        List<DragTableCondition> dragTableConditionList = new ArrayList<>();
+        dragTableVo.getSearchFieldList().forEach(item -> {
+            dragTableConditionList.add(new DragTableCondition(dragTable.gettId(), item));
+        });
+        dragTableConditionMapper.insertDragTableConditionByList(dragTableConditionList);
 
 
-        return dragTableMapper.insertDragTable(dragTable);
+        return 1;
     }
     }
 }
 }

+ 9 - 0
ruoyi-system/src/main/resources/mapper/dragmapper/DragTableConditionMapper.xml

@@ -62,6 +62,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
         </foreach>
     </insert>
     </insert>
 
 
+    <insert id="insertDragTableConditionByList"  parameterType="java.util.List">
+        insert into drag_table_condition
+        (t_id,condition_field)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.tId},#{item.conditionField})
+        </foreach>
+    </insert>
+
     <update id="updateDragTableCondition">
     <update id="updateDragTableCondition">
         update drag_table_condition set
         update drag_table_condition set
         <foreach collection="fields" item="field" index="key" separator=",">
         <foreach collection="fields" item="field" index="key" separator=",">