فهرست منبع

质量检验表单顺序优化

cr 6 روز پیش
والد
کامیت
4c2b1f773f

+ 31 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -613,8 +613,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 //        if(info!=null){
 //            resultTabs.forEach(tab->tab.setFileName(info.getName()));
 //        }
-        // 使用自定义 Comparator 进行排序
-        resultTabs.sort(new WbsTreeContractComparator());
         if (Optional.ofNullable(wbsTreeContract.getIsUseSort()).orElse(0) == 0) {
             //表单排序
             if (resultTabs.size() > 0) {
@@ -623,18 +621,27 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 return this.sortTabs(resultTabsToCopy, "_PL_"); //频率表排序
             }
         }
+        // 使用自定义 Comparator 进行排序
+        resultTabs.sort(new WbsTreeContractComparator());
         return resultTabs;
     }
 
     private void sortTabsByIsTypePrivatePid(List<AppWbsTreeContractVO> resultTabs) {
         if(!resultTabs.isEmpty()){
+           StringBuilder ids=new StringBuilder("");
+            List<Integer>sorts1=new ArrayList<>();
+            List<Integer>sorts2=new ArrayList<>();
             for (AppWbsTreeContractVO resultTab : resultTabs) {
-                if(resultTab.getExcelId()!=null){
+                if(resultTab.getExcelId()==null){
                     continue;
                 }
+                //拿到质量检验表附表的pkeyId,以及sort
                 if(resultTab.getExcelId()==1777969831956520962L||resultTab.getExcelId()==1636534954773417986L||resultTab.getExcelId()==1626130998410768385L){
-                   continue;
+                    ids.append(resultTab.getPKeyId()+",");
+                    sorts2.add(resultTab.getSort());
+                    continue;
                 }
+                //检验附表以外的排序有问题的表单修改
                 if(resultTab.getIsTypePrivatePid()!=null){
                     String sql="select IFNULL(sort,1000) from m_wbs_tree_private where p_key_id="+resultTab.getIsTypePrivatePid()+" and is_deleted=0";
                     Integer sort = jdbcTemplate.queryForObject(sql,Integer.class);
@@ -644,6 +651,26 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                         jdbcTemplate.update(sql1);
                     }
                 }
+                //tableType=1 的表单sort
+                if(resultTab.getTableType()!=null&&resultTab.getTableType()==1){
+                    sorts1.add(resultTab.getSort());
+                }
+            }
+            if(!sorts1.isEmpty()&&!sorts2.isEmpty()){
+                String idss = ids.substring(0, ids.length() - 1);
+                //tableType=1 的表单sort的最大值
+                Integer maxSort = Collections.max(sorts1);
+                //质量检验表附表 的sort的最小值
+                Integer minSort = Collections.min(sorts2);
+                if(maxSort>minSort){
+                    resultTabs.forEach(r->{
+                       if(idss.contains(r.getPKeyId()+"")){
+                           r.setSort(maxSort);
+                       }
+                    });
+                    String sql2="update m_wbs_tree_contract set sort="+maxSort+" where p_key_id in ("+idss+")";
+                    jdbcTemplate.update(sql2);
+                }
             }
         }
     }