瀏覽代碼

fix:弹窗管理

侯茂昌 1 年之前
父節點
當前提交
66596a04ee

+ 33 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dragForm/DragTableStatisticController.java

@@ -90,6 +90,39 @@ public class DragTableStatisticController extends BaseController
         return toAjax(dragTableStatisticService.batchInsertDragTableStatistic(vo));
     }
 
+    /**
+     * 新增动态表格组统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:statistic:add')")
+    @Log(title = "动态表格统计", businessType = BusinessType.INSERT)
+    @PostMapping("/addGroupTableStatistic")
+    @ApiOperation(value = "新增动态表格统计")
+    public AjaxResult addGroupTableStatistic(@RequestBody DragTableVo vo)
+    {
+        if(vo.getDragTableStatisticList()==null||vo.getDragTableStatisticList().size()<0){
+            return  AjaxResult.success("未填写统计信息1");
+        }
+        if(vo.getTableSqlList()==null||vo.getTableSqlList().size()<0){
+            return  AjaxResult.success("未填写统计信息2");
+        }
+        return toAjax(dragTableStatisticService.batchInsertGroupDragTableStatistic(vo));
+    }
+
+    /**
+     * 修改动态表格统计
+     */
+    @PreAuthorize("@ss.hasPermi('system:statistic:edit')")
+    @Log(title = "动态表格统计", businessType = BusinessType.UPDATE)
+    @PutMapping("/updateGroupTableStatistic")
+    @ApiOperation(value = "修改动态表格统计")
+    public AjaxResult updateGroupTableStatistic(@RequestBody DragTableVo vo)
+    {
+        dragTableStatisticService.updateGroupDragTableStatistic(vo);
+        return AjaxResult.success();
+    }
+
+
+
     /**
      * 修改动态表格统计
      */

+ 13 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IDragTableStatisticService.java

@@ -40,6 +40,13 @@ public interface IDragTableStatisticService
      */
     int batchInsertDragTableStatistic(DragTableVo vo);
 
+    /**
+     * 新增动态表格组统计
+     * @param vo
+     * @return
+     */
+    public int batchInsertGroupDragTableStatistic(DragTableVo vo);
+
     /**
      * 修改动态表格统计
      * 
@@ -48,6 +55,12 @@ public interface IDragTableStatisticService
      */
     void updateDragTableStatistic(DragTableVo vo);
 
+    /**
+     * 修改动态表格组统计
+     * @param vo
+     * @return
+     */
+    public void updateGroupDragTableStatistic(DragTableVo vo);
     /**
      * 删除动态表格统计信息
      * 

+ 26 - 11
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragTableGroupServiceImpl.java

@@ -8,7 +8,6 @@ import com.ruoyi.system.entity.*;
 import com.ruoyi.system.entity.vo.DragTableGroupVo;
 import com.ruoyi.system.entity.vo.DragTableVo;
 import com.ruoyi.system.mapper.*;
-import com.ruoyi.system.service.ICommonService;
 import com.ruoyi.system.service.IDragTableBtnRelevanceService;
 import com.ruoyi.system.service.IDragTableGroupService;
 import com.ruoyi.system.service.ITableSqlService;
@@ -255,6 +254,7 @@ public class DragTableGroupServiceImpl implements IDragTableGroupService {
                 BeanUtils.copyProperties(dragTableVo, dragTable);
                 dragTable.setDtColumnName(JSONObject.toJSONString(dragTableVo.getDtColumnName()));
                 dragTable.setPrimaryKey(dragTableVo.getPrimaryKey());
+                dragTable.setDtName(dragTableVo.getDtTableName());//表格名称
                 dragTable.setMenuId(dragTableVo.getMenuId());
                 dragTable.setDtType("1");
                 //add table_sql
@@ -292,7 +292,7 @@ public class DragTableGroupServiceImpl implements IDragTableGroupService {
                 tableSql.setSqlKey(dragTableVo.getSqlKey());
                 tableSql.setOrderByColumn(dragTableVo.getOrderByColumn());
                 tableSql.setSortOrder(dragTableVo.getSortOrder());
-                tableSqlMapper.updateTableSql(tableSql);
+                tableSqlMapper.updateTableSqlBySqlKey(tableSql);
                 //add drag_table_condition
                 if (dragTableVo.getSearchFieldList().size() > 0) {
                     List<DragTableCondition> dragTableConditionList = new ArrayList<>();
@@ -477,6 +477,8 @@ public class DragTableGroupServiceImpl implements IDragTableGroupService {
         sortArray.stream().forEach(item->tableKeys.add(JSONObject.parseObject(item.toString()).get("tableKey").toString()));
         //查询表格信息
         List<DragTableVo> dragTableVos = dragTableMapper.selectDragTableTableKeysOrderby(tableKeys);
+        //存条件的数组
+        List<String> conditionCollectString=new ArrayList<>();
         //查询表格按钮信息
         dragTableVos.forEach(item->{
             // 动态表格按钮信息
@@ -497,14 +499,21 @@ public class DragTableGroupServiceImpl implements IDragTableGroupService {
                     item.setDragTableBtnList(btnList);
                 }
             }
+            //根据动态表格查询条件信息
+            List<DragTableCondition> dragTableConditions = dragTableConditionMapper.selectDragTableConditionByTid(item.gettId());
+            //拿到条件
+            List<String> conditionCollect= dragTableConditions.stream().map(condition -> condition.getConditionDefaultValue()).collect(Collectors.toList());
+            //添加所有集合到大条件中
+            conditionCollectString.addAll(conditionCollect);
         });
+        //数组集合去重
+        List<String>  distinctCondition = conditionCollectString.stream().distinct().collect(Collectors.toList());
         CommonEntity common=new CommonEntity();
-        dragTableVos.forEach(item->{
-            //结果Map
-            Map<String, Object> resultMap = new HashMap<>();
-            resultMap.put(item.getTableKey(), item);
-            common.setResultMap(resultMap);
-        });
+        //模版结果Map
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("template",dragTableVos);
+        resultMap.put("condition",distinctCondition);
+        common.setResultMap(resultMap);
         return  common;
     }
 
@@ -523,19 +532,25 @@ public class DragTableGroupServiceImpl implements IDragTableGroupService {
         List<DragTableVo> dragTableVos = getDragTableVos(groupTableInfo);
         //根据sqlKey查询TableSql数据
         CommonEntity common=new CommonEntity();
+        List<List<CommonEntity>> commonEntityList=new ArrayList<>();
         dragTableVos.forEach(item->{
             TableSql tableSql = iTableSqlService.selectTableSqlByTSqlKey(item.getSqlKey());
             //sql的条件值
             AtomicReference<String> tableSqlTableCondition= new AtomicReference<>(tableSql.getTableCondition());
             //循环替换条件占位的值
             commonEntity.getQueryMap().forEach((k,v)->{
-                tableSqlTableCondition.set(tableSqlTableCondition.get().replace(k, v.toString()));
+                tableSqlTableCondition.set(tableSqlTableCondition.get().replace(k, "'"+v.toString()+"'"));
             });
             //sql的执行语句
-            String sqlString = tableSql.getTableSql() + " where " + tableSqlTableCondition;
+            String sqlString = tableSql.getTableSql() + " where " + tableSqlTableCondition.get();
             List<CommonEntity> commonEntities = commonMapper.queryTableList(sqlString);
-            common.getResultMap().put(item.getTableKey(),commonEntities);
+            //很多条数据
+            commonEntityList.add(commonEntities);
         });
+        //结果Map
+        HashMap hashMap = new HashMap();
+        hashMap.put("result",commonEntityList);
+        common.setResultMap(hashMap);
         return common;
     }
 

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

@@ -282,6 +282,7 @@ public class DragTableServiceImpl implements IDragTableService {
             dragTable.setDtColumnName(JSON.toJSONString(dragTableVo.getDtColumnName()));
             dragTable.setPrimaryKey(dragTableVo.getPrimaryKey());
             dragTable.setMenuId(dragTableVo.getMenuId());
+            dragTable.setDtName(dragTableVo.getDtTableName());//表格名称
             dragTable.setDtType("1");
             //add table_sql
             TableSql tableSql = new TableSql();

+ 125 - 15
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/DragTableStatisticServiceImpl.java

@@ -80,10 +80,6 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += SQL_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
                     SQL += vo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
-                    SQL +=SQL_END;
-                    if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
-                        SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
-                    }
                 }
                 break;
             case "DM":
@@ -92,23 +88,54 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += SQL_DM_SERVER_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
                     SQL += vo.getSearchFieldList().size() - 1 == i ? ",'')" : ",\n";
-                    SQL +=SQL_END;
                 }
                 break;
             case "ORACLE":
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += vo.getSearchFieldList().get(i);
                     SQL += (vo.getSearchFieldList().size() - 1 == i ? " " : "||");
-                    SQL +=SQL_END;
                 }
                 break;
         }
+        SQL += SQL_END;
         String where = vo.getDtTableName() + ".del_flag = '0' AND "+ SQL;
         vo.getTableSqlList().stream().forEach(t -> t.setTableCondition(where));
         tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
         return dragTableStatisticMapper.batchInsertDragTableStatistic(vo.getDragTableStatisticList());
     }
 
+
+    @Override
+    @Transactional
+    public int batchInsertGroupDragTableStatistic(DragTableVo vo)
+    {
+        vo.getDragTableStatisticList().stream().
+                forEach(s -> {s.setCreateBy(SecurityUtils.getUserId().toString());});
+        // 拼接sql查询条件
+        String SQL = "";
+        switch (SecurityUtils.getDatabaseType().toUpperCase()) {
+            case "MYSQL":
+                //有拼接的统计条件值
+                for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
+                    if (vo.getConditionDefaultValueMap() != null && vo.getConditionDefaultValueMap().size() > 0) {
+                        SQL += " AND"+vo.getSearchFieldList().get(i) + "=" + vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
+                    }
+                }
+                break;
+            case "DM":
+            case "SQLSERVER":
+                break;
+            case "ORACLE":
+                break;
+        }
+        String where = vo.getDtTableName() + ".del_flag = '0'"+ SQL;
+        vo.getTableSqlList().stream().forEach(t -> t.setTableCondition(where));
+        vo.getTableSqlList().forEach(item->{item.setDelFlag("0");});
+        tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
+        return dragTableStatisticMapper.batchInsertDragTableStatistic(vo.getDragTableStatisticList());
+    }
+
+
     @Override
     @Transactional
     public void updateDragTableStatistic(DragTableVo vo)
@@ -121,10 +148,6 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += SQL_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
                     SQL += vo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
-                    SQL +=SQL_END;
-                    if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
-                        SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
-                    }
                 }
                 break;
             case "DM":
@@ -133,19 +156,17 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += SQL_DM_SERVER_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
                     SQL += vo.getSearchFieldList().size() - 1 == i ? ",'')" : ",\n";
-                    SQL +=SQL_END;
                 }
                 break;
             case "ORACLE":
                 for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
                     SQL += vo.getSearchFieldList().get(i);
                     SQL += (vo.getSearchFieldList().size() - 1 == i ? " " : "||");
-                    SQL +=SQL_END;
                 }
                 break;
         }
+        SQL += SQL_END;
         String sql = vo.getDtTableName() + ".del_flag = '0' AND "+ SQL;
-
         LinkedList<DragTableStatistic> addList = new LinkedList<>();
         LinkedList<DragTableStatistic> editList = new LinkedList<>();
         List<Long> numList = new ArrayList<>();
@@ -203,6 +224,95 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
 
     }
 
+    @Override
+    @Transactional
+    public void updateGroupDragTableStatistic(DragTableVo vo)
+    {
+
+        vo.getDragTableStatisticList().stream().
+                forEach(s -> {
+                    s.setUpdateById(SecurityUtils.getUserId());
+                    s.setUpdateBy(SecurityUtils.getUsername());
+                    s.setUpdateTime(DateUtils.getNowDate());
+                    ;});
+        // 拼接sql查询条件
+        String SQL = "";
+        switch (SecurityUtils.getDatabaseType().toUpperCase()) {
+            case "MYSQL":
+                for (int i = 0; vo.getSearchFieldList().size() > i; i++){
+                    if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
+                        SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
+                    }
+                }
+                break;
+            case "DM":
+            case "SQLSERVER":
+            case "ORACLE":
+                break;
+        }
+        String sql = vo.getDtTableName() + ".del_flag = '0'"+ SQL;
+        LinkedList<DragTableStatistic> addList = new LinkedList<>();
+        LinkedList<DragTableStatistic> editList = new LinkedList<>();
+        List<Long> numList = new ArrayList<>();
+        vo.getDragTableStatisticList().stream().forEach(s -> {
+            if(s.getId() == null){
+                s.setCreateById(SecurityUtils.getUserId());
+                s.setCreateBy(SecurityUtils.getUsername());
+                s.setCreateTime(DateUtils.getNowDate());
+                addList.add(s);//新添加的
+            }else {
+                s.setUpdateById(SecurityUtils.getUserId());
+                s.setUpdateBy(SecurityUtils.getUsername());
+                s.setUpdateTime(DateUtils.getNowDate());
+                editList.add(s); //修改的
+            }
+            numList.add(s.getId());
+        });
+        //select Statistic ids
+        List<Long> allIds = dragTableStatisticMapper.selectIdsByTableKey(vo.getTableKey());
+        allIds.removeAll(numList); //把所有的统计都给干掉
+        //remove Statistic
+        if(allIds.size() > 0){
+            dragTableStatisticMapper.deleteDragTableStatisticByIds(allIds);
+        }
+        //add Statistic
+        if(addList.size() > 0){
+            dragTableStatisticMapper.batchInsertDragTableStatistic(addList);
+        }
+        //update Statistic
+        if(editList.size() > 0){
+            editList.stream().forEach(e -> dragTableStatisticMapper.updateDragTableStatistic(e));
+        }
+        // select Statistic sqlKey
+        List<String> allSqlKey = dragTableStatisticMapper.selectSqlKeyByTableKey(vo.getTableKey());
+
+        if(vo.getTableSqlList().size() > 0){
+            vo.getTableSqlList().stream().forEach(t -> {
+                t.setCreateById(SecurityUtils.getUserId());
+                t.setCreateBy(SecurityUtils.getUsername());
+                t.setCreateTime(DateUtils.getNowDate());
+                t.setUpdateById(SecurityUtils.getUserId());
+                t.setUpdateBy(SecurityUtils.getUsername());
+                t.setUpdateTime(DateUtils.getNowDate());
+                t.setTableCondition(sql);
+            });
+            if(allSqlKey.size() > 0){
+                //remove tableSql
+                tableSqlMapper.deleteTableSqlBySqlKeys(allSqlKey);
+            }
+            //add tableSql
+            tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
+        }else {
+            if(allSqlKey.size() > 0){
+                //remove tableSql
+                tableSqlMapper.deleteTableSqlBySqlKeys(allSqlKey);
+            }
+        }
+
+    }
+
+
+
     @Override
     public int deleteDragTableStatisticByTableKey(String tableKey)
     {
@@ -244,10 +354,10 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
             if(commonEntity.getQueryMap()!=null||commonEntity.getQueryMap().size()>0){
                 commonEntity.getQueryMap().forEach((k,v)->{
                     if(!k.equals("tableKey")){
-                        String replace = tableSql.getTableCondition().replace(k, v.toString());
+                        String replace = tableSql.getTableCondition().replace(k, "'"+v.toString()+"'");
+                        tableSql.setTableCondition(replace);
                         endSQLAtomic.set(replace);
                     }
-
                 });
             }
             String endSQL = endSQLAtomic.get().replace("#{val}", queryCriteriaValue);