Browse Source

试验保存新增日志sql,后管编辑元素页面通过数据类型查询

chenr 2 months ago
parent
commit
90f4fe854a

+ 58 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -3079,7 +3079,8 @@ public class ExcelTabController extends BladeController {
             }
             //查询数据
             String querySql = "SELECT * FROM " + tabName + " WHERE id = " + ids[0] + " and group_id = " + tableNode2.getPKeyId();
-            Map<String, Object> businessDataMap = this.jdbcTemplate.queryForMap(querySql);
+            List<Map<String, Object>> businessDataMap = this.jdbcTemplate.queryForList(querySql);
+            Map<String, Object> reData=new HashMap<>();
             if (businessDataMap.size() > 0){
                 try {
                     if (tableNode2.getHtmlUrl() != null){
@@ -3104,11 +3105,64 @@ public class ExcelTabController extends BladeController {
                         allElements.add(rq);
                         allElements.add(shr);
                         allElements.add(tqqk);
+                        allElements=allElements.stream().filter(o->o!=null&&o.size()>0).collect(Collectors.toList());
                         if(allElements.size()>0){
+                            for (String key : businessDataMap.get(0).keySet()) {
+                                String tabVal = businessDataMap.get(0).get(key) + "";
+                                // 时间段处理
+                                if (StringUtils.isNotEmpty(tabVal) && !tabVal.equals("null")) {
+                                    if (tabVal.indexOf("T") >= 0 && tabVal.indexOf(".000Z]") >= 0) {
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        if (reData.containsKey("pickerKey")) {
+                                            String pickerKey = reData.get("pickerKey") + "," + key + "__" + tabData[1];
+                                            reData.put("pickerKey", pickerKey);
+                                        } else {
+                                            reData.put("pickerKey", key + "__" + tabData[1]);
+                                        }
+                                        String sql = tabData[0];
+                                        sql = sql.replaceAll("\\[", "['");
+                                        sql = sql.replaceAll("]", "']");
+                                        sql = sql.replaceAll("000Z,", "000Z',");
+                                        sql = sql.replaceAll(", 20", ", '20");
+                                        sql = sql.replaceAll("'", "");
+                                        reData.put(key + "__" + tabData[1], sql);
+                                    } else if (tabVal.indexOf("T") >= 0 && tabVal.indexOf(".000Z") >= 0) { //时间
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        reData.put(key + "__" + tabData[1], tabData[0]);
+                                    } else if (tabVal.indexOf("☆") >= 0) {
+                                        String[] mysql = tabVal.split("☆");
+                                        for (String data : mysql) {
+                                            String[] tabData = data.split("_\\^_");
+                                            reData.put(key + "__" + tabData[1], tabData[0]);
+                                        }
+                                    } else if (tabVal.indexOf("_^_") >= 0) { //数组处理方式
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        if (StringUtils.isNotEmpty(tabData[0])) {
+                                            if (tabVal.contains("[") && tabVal.contains("年")) {
+                                                String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
+                                                reData.put(key + "__" + tabData[1], strings);
+                                            }
+                                            if (tabVal.contains("[") && tabVal.contains("]") && tabVal.indexOf(",") >= 0) {
+                                                String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
+                                                reData.put(key + "__" + tabData[1], strings);
+                                            } else {
+                                                if (tabVal.contains("[") && tabVal.contains("]")) {
+                                                    String[] strings = new String[]{tabData[0].replaceAll("\\[","").replaceAll("]","")};
+                                                    reData.put(key + "__" + tabData[1],strings);
+                                                } else {
+                                                    reData.put(key + "__" + tabData[1], tabData[0]);
+                                                }
+                                            }
+                                        }
+                                    } else {
+                                        reData.put(key, tabVal);
+                                    }
+                                }
+                            }
                             for (Elements element : allElements) {
-                             if(businessDataMap.containsKey(element.attr("keyname"))){
-                                resultMapList.put(element.attr("keyname"), businessDataMap.get(element.attr("keyname")));
-                               }
+                                if(reData.containsKey(element.attr("keyname"))){
+                                    resultMapList.put(element.attr("keyname"),reData.get(element.attr("keyname")));
+                                }
                             }
                         }
                     }

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -49,6 +49,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.DateUtil;
@@ -3643,13 +3644,16 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 keyStr = keyStr.substring(0, keyStr.lastIndexOf(","));
                 valStr = valStr.substring(0, valStr.lastIndexOf(","));
                 sqlInfo = sqlInfo + keyStr + ") VALUES (" + valStr + ")";
-
+                String deletedTrialSqlInfo="INSERT INTO blade_trial_sql (id,p_key_id,group_id,uesr_id,create_time,sql_info) Values ("+SnowFlakeUtil.getId()+","+tableInfo.getPkeyId()+","+groupId+","+ SecureUtil.getUserId() +",SYSDATE(),"+delSql+")";
+                String trialSqlInfo="INSERT INTO blade_trial_sql (id,p_key_id,group_id,uesr_id,create_time,sql_info) Values ("+SnowFlakeUtil.getId()+","+tableInfo.getPkeyId()+","+groupId+","+ SecureUtil.getUserId() +",SYSDATE(),"+sqlInfo+")";
                 TransactionStatus transactionStatus = this.beginTransaction(transactionManager1);
                 try {
                     //删除
                     jdbcTemplate.execute(delSql);
                     //新增
                     jdbcTemplate.execute(sqlInfo);
+                    jdbcTemplate.execute(deletedTrialSqlInfo);
+                    jdbcTemplate.execute(trialSqlInfo);
                     //提交事务
                     transactionManager1.commit(transactionStatus);
                 } catch (Exception e) {
@@ -3657,6 +3661,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     transactionManager1.rollback(transactionStatus);
                     throw new RuntimeException("500"+e.getCause().getMessage()+"  字段过长,新增失败");
                 }
+
             }
         }
     }