Browse Source

后管表单关联优化:保留原有配置

lvy 1 month ago
parent
commit
174ba9fef1

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

@@ -687,7 +687,7 @@ public class ExcelTabController extends BladeController {
                 }
             }
         }
-        saveOldHtmlConfig(aPrivate, htmlString);
+        saveOldHtmlConfig(aPrivate, doc);
         File writefile = new File(thmlUrl);
         FileUtil.writeToFile(writefile, doc.html(), Boolean.parseBoolean("UTF-8"));
 
@@ -733,7 +733,7 @@ public class ExcelTabController extends BladeController {
         return R.success("关联成功");
     }
 
-    public void saveOldHtmlConfig(WbsTreePrivate wbsTreePrivate, String htmlString){
+    public void saveOldHtmlConfig(WbsTreePrivate wbsTreePrivate, Document doc){
         // 获取原默认值配置
         List<TextdictInfoVO> defaultConfigs = new ArrayList<>();
         {
@@ -746,8 +746,6 @@ public class ExcelTabController extends BladeController {
                 });
             }
         }
-        // 读取新的html内容
-        Document doc = Jsoup.parse(htmlString);
         // 将原配置信息写入到新的html中,先通过colKey匹配,再通过colName匹配。如果匹配不上,则保存到数据库。后续手动配置、修改
         defaultConfigs.removeIf(config -> {
             String colKey = config.getColKey();

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -709,7 +709,12 @@ public class TextdictInfoController extends BladeController {
             textdictInfo.setProjectId(wbsTreePrivate.getProjectId());
 
             String[] trtd = key.split("__")[1].split("_");
-            Element element = trs.get(Integer.parseInt(trtd[0])).select("td").get(Integer.parseInt(trtd[1]));
+            Element element;
+            try {
+                element = trs.get(Integer.parseInt(trtd[0])).select("td").get(Integer.parseInt(trtd[1]));
+            } catch (Exception e) {
+                throw new ServiceException(String.format("【%s】元素位置与表单不匹配,请重新编辑后保存", textdictInfo.getColName()));
+            }
             String colKey = element.children().get(0).attr("keyname");
             textdictInfo.setColKey(colKey);