Bläddra i källkod

Merge remote-tracking branch 'origin/test-merge-02' into test-merge-02

cr 3 månader sedan
förälder
incheckning
e0d457ea22

+ 4 - 5
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/PrivateStandardServiceImpl.java

@@ -241,9 +241,9 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
             for (PrivateStandardDTO dto : data) {
                 // 获取当前对象需要的文件数量
                 int fileCount = dto.getFilesCount();
-                if(allFiles != null && allFiles.length > 0){
-                    if(fileCount > 0 && fileIndex < allFiles.length){
-                        dto.setFile(allFiles[fileIndex++]);
+                if(files != null && files.size() > 0){
+                    if(fileCount > 0 && fileIndex < files.size()){
+                        dto.setFile(files.get(fileIndex++));
                     }
                     //先上传文件,上传成功在执行添加
                     if(dto.getFile() != null){
@@ -286,9 +286,8 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
                 PrivateStandard privateStandard = BeanUtil.copyProperties(dto, PrivateStandard.class);
                 //修改
                 baseMapper.updateById(privateStandard);
-                return true;
             }
-            return false;
+            return true;
         } catch (Exception e) {
             //删除之前上传的文件
             if(CollectionUtils.isNotEmpty(standardFiles)){

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

@@ -1641,7 +1641,7 @@ public class ExcelTabController extends BladeController {
         String[] split = wbsInfo.getNodeName().split("__");
         //查出当前节点里面本表的所有复制表
         List<WbsTreeContract> wbsTreeContractList = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>query().lambda()
-                .likeRight(WbsTreeContract::getNodeName,split[0])
+                .likeRight(WbsTreeContract::getNodeName,split[0] + "\\_\\_")
                 .eq(WbsTreeContract::getContractId, wbsInfo.getContractId())
                 .eq(WbsTreeContract::getParentId, wbsInfo.getParentId())
                 .eq(WbsTreeContract::getTableOwner, wbsInfo.getTableOwner()));
@@ -1673,7 +1673,7 @@ public class ExcelTabController extends BladeController {
         wbsTreeContract.setTabGroupId(tabGroupId);
         wbsTreeContract.setCopyPkId(wbsInfo.getCopyPkId() == null ? pkeyId + "" : wbsInfo.getCopyPkId());
         String nodeName;
-        nodeName = wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
+        nodeName = wbsTreeContractList2.isEmpty() ? wbsInfo.getNodeName() :wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
         if (nodeName.indexOf("__") >= 0) {
             String[] oldName = nodeName.split("__");
             nodeName = oldName[0] + "__" + (Integer.parseInt(oldName[1]) + 1);

+ 28 - 24
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -657,35 +657,39 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             // 如果 sort 相同,比较 nodeName
             String name1 = o1.getNodeName();
             String name2 = o2.getNodeName();
-            boolean flag=false;
-            boolean hasUnderscore1 = name1.contains("__");
-            boolean hasUnderscore2 = name2.contains("__");
-            if(name1.contains("PL")&&name2.contains("PL")){
-                flag=true;
+            String[] split1 = name1.split("__");
+            String[] split2 = name2.split("__");
+            if (split1[0].equals(split2[0])) {
+                try {
+                    return compareTo(split1, split2);
+                } catch (NumberFormatException e) {
+                    // 如果无法将字符串转换为数字,则按照字符串比较
+                    return name1.compareTo(name2);
+                }
+            } else {
+                split1 = split1[0].split("_PL_");
+                split2 = split2[0].split("_PL_");
+                try {
+                    return compareTo(split1, split2);
+                } catch (NumberFormatException e) {
+                    return name1.compareTo(name2);
+                }
             }
-            if(flag){
-                int number1 = getPLNumberAfterUnderscore(name1);
-                int number2 = getPLNumberAfterUnderscore(name2);
+        }
+
+        private static int compareTo(String[] split1, String[] split2) {
+            if (split1.length > 1 && split2.length > 1) {
+                int number1 = Integer.parseInt(split1[1]);
+                int number2 = Integer.parseInt(split2[1]);
                 return Integer.compare(number1, number2);
-            }
-            if (!hasUnderscore1 && !hasUnderscore2) {
-                // 两个都不包含 __,按字母顺序排序
-                return name1.compareTo(name2);
-            } else if (!hasUnderscore1) {
-                // 第一个不包含 __,排在前面
-                return -1;
-            } else if (!hasUnderscore2) {
-                // 第二个不包含 __,排在前面
+            } else if (split1.length == 1 && split2.length == 1) {
+                return 0;
+            } else if (split1.length > 1) {
                 return 1;
-            }
-            else {
-                // 两个都包含 __,按 __ 后面的数字排序
-                int number1 = getNumberAfterUnderscore(name1);
-                int number2 = getNumberAfterUnderscore(name2);
-                return Integer.compare(number1, number2);
+            } else {
+                return -1;
             }
         }
-
         private int getNumberAfterUnderscore(String name) {
             String[] parts = name.split("__");
             if (parts.length > 1) {