liuyc 2 роки тому
батько
коміт
9cb42621a8

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -57,7 +57,7 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     // 频率设计值  添加表单
     boolean addTabInfoByRan(RangeInfo info, List<Object> moreData, String[] excLenght) throws FileNotFoundException;
 
-    boolean syncTabData(String pKeyId);
+    boolean syncTabData(String pKeyId) throws Exception;
 
     void syncCurrentFormToAllContract(WbsTreePrivate wbsTreePrivate);
 }

+ 61 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -560,7 +560,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             //频率表
             Map<String, String> sgPLNodeMaps = new LinkedHashMap<>();
             Map<String, String> jlPLNodeMaps = new LinkedHashMap<>();
-            //复制
+            //复制表
             Map<String, String> sgCopyNodeMaps = new LinkedHashMap<>();
             Map<String, String> jlCopyNodeMaps = new LinkedHashMap<>();
 
@@ -815,7 +815,67 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
                                 //跨单元格(多个单元格)
                             } else if (value.toString().contains("_^_") && value.toString().contains("☆")) {
+                                String[] oneCells = value.toString().split("☆"); //一个单元格
+
+                                List<String> values = new ArrayList<>();
+
+                                for (String cell : oneCells) {
+                                    String[] fieldArr = cell.split("_\\^_");
+                                    String data = fieldArr[0];
+                                    String index = fieldArr[1];
+                                    String findIndex = key + "__" + index;
+
+                                    if (StringUtils.isNotEmpty(htmlString)) {
+                                        Document doc = Jsoup.parse(htmlString);
+                                        Elements td = doc.select("el-input[keyname~=" + findIndex + ".*]");
+                                        String placeholderValue = "";
+                                        if (td.size() >= 1) {
+                                            for (Element element : td) {
+                                                placeholderValue = element.attr("placeholderxx");
+                                                break;
+                                            }
+                                        }
+
+                                        //警告跳过
+                                        if (!placeholderValue.contains("警告")) {
+                                            if (StringUtils.isNotEmpty(htmlStringJL)) {
+                                                Document docJL = Jsoup.parse(htmlStringJL);
+                                                Elements tdJL = docJL.select("el-input[placeholderxx~=" + this.escapeRegex(placeholderValue) + ".*]");
+                                                if (tdJL.size() >= 1) {
+                                                    for (Element element : tdJL) {
+                                                        String keyname = element.attr("keyname");
+                                                        if (StringUtils.isNotEmpty(keyname)) {
+                                                            String[] keynameJL = keyname.split("__");
+                                                            String keyJL = keynameJL[0];
+                                                            if (keyJL.length() > 3) { //排除key=key的时候,也就是找不到key值,正常为key_X
+                                                                String keyJLIndex = keynameJL[1];
+                                                                values.add(data + "_^_" + keyJLIndex + "---" + keyJL);
+                                                                break;
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+
+                                    }
+                                }
 
+                                Set<String> dataResult = new HashSet<>();
+                                Set<String> keyResult = new HashSet<>();
+                                for (String v : values) {
+                                    String[] split1 = v.split("---");
+                                    dataResult.add(split1[0]);
+                                    keyResult.add(split1[1]);
+                                }
+                                if (resultData.size() > 0 && keyResult.size() > 0) {
+                                    InsertDataVO vo = new InsertDataVO();
+                                    vo.setPKeyId(pKeyIdJL);
+                                    vo.setInitTabName(initTabNameJL);
+                                    vo.setKey(keyResult.stream().findAny().orElse(null));
+                                    vo.setData(StringUtils.join(dataResult, "☆"));
+                                    resultData.add(vo);
+                                }
                             }
                         }
                     }