Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/master'

liuyc 1 gadu atpakaļ
vecāks
revīzija
0ae676f105

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormData.java

@@ -112,6 +112,8 @@ public class FormData {
     private Boolean finished = false;
     /**是否已经初始化好数据*/
     private Boolean initReady=false;
+    /**0表头表尾,1正文*/
+    private Integer structure=0;
     /**
      * 元素和单元格的映射信息
      */
@@ -267,5 +269,10 @@ public class FormData {
         return false;
     }
 
+    /*是否是测量业务数据*/
+    public boolean isContent(){
+        return this.structure==1;
+    }
+
 
 }

+ 61 - 4
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/FB02.java

@@ -2,11 +2,16 @@ package org.springblade.manager.vo;
 
 import lombok.Data;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.dto.Coords;
+import org.springblade.manager.dto.ElementData;
 import org.springblade.manager.dto.FormData;
+import org.springblade.manager.entity.WbsTreeContract;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
 /**
  * @author yangyj
@@ -20,8 +25,10 @@ public class FB02 {
     private FormData name;
     private FormData passRate;
     private FormData weight;
+    private Integer  rowSize=20;
     private List<FormData> fds = new ArrayList<>();
     private List<Item> datas = new ArrayList<>();
+    private Map<FormData, BiFunction<List<Item>,Integer,List<Object>>> fm = new HashMap<>();
 
 
     @Data
@@ -70,15 +77,19 @@ public class FB02 {
          for(FormData fd:processFds){
               if(fd.getEName().contains("分项工程名称")){
                   this.subItem=fd;
+                  this.fm.put(fd,(List<Item> l,Integer pn)->l.stream().map(Item::getSubItem).collect(Collectors.toList()));
               }else if(fd.getEName().contains("序号")){
                   this.sn=fd;
+                  this.fm.put(fd,(List<Item> l,Integer pn)->IntStream.range(0, l.size()).boxed().map(i->i+pn*l.size()).collect(Collectors.toList()));
               }else if(fd.getEName().contains("实测项目")){
                   this.name=fd;
+                  this.fm.put(fd,(List<Item> l,Integer pn)->l.stream().map(Item::getName).collect(Collectors.toList()));
               }else if(fd.getEName().contains("实测合格率")){
                   this.passRate=fd;
-
+                  this.fm.put(fd,(List<Item> l,Integer pn)->l.stream().map(Item::getPassRate).collect(Collectors.toList()));
               }else if(fd.getEName().contains("权值")){
                   this.weight=fd;
+                  this.fm.put(fd,(List<Item> l,Integer pn)->l.stream().map(Item::getWeight).collect(Collectors.toList()));
               }
               if(this.subItem!=null&&this.name!=null&&this.passRate!=null&&this.weight!=null&&this.sn!=null){
                   /*匹配完成*/
@@ -93,12 +104,58 @@ public class FB02 {
     }
 
     public void initFdCoords(Map<String,String> tableKeysCoordsMap){
+        boolean f=false;
         for(FormData fd:this.fds){
             String coords =tableKeysCoordsMap.get(fd.getKey());
             if(Func.isNotBlank(coords)){
                 fd.flushCoords(coords);
+                f=true;
             }
         }
+        if(f) {
+            this.rowSize = this.fds.get(0).getCoordsList().size();
+        }
+    }
+
+    public boolean flush( List<WbsTreeContract> wtcList){
+        if(wtcList.size()>0) {
+            Map<Integer, List<Item>> pages = IntStream.range(0, datas.size()).boxed()
+                    .collect(Collectors.groupingBy(
+                            i -> i / rowSize,
+                            LinkedHashMap::new,
+                            Collectors.mapping(datas::get, Collectors.toList())
+                    ));
+            pages.forEach((k, v) -> {
+                this.fds.forEach(fd -> {
+                    putEd(k, v, fd);
+                });
+            });
+
+
+         String template="update xxxxx set content='xxxx',update_time=xxx where id =xxxx";
+
+            return true;
+        }
+       return false;
     }
 
+   /**把数据放到对应元素*/
+    private void putEd(int pn,List<Item> items, FormData fd){
+        BiFunction<List<Item>,Integer,List<Object>> fc = this.fm.get(fd);
+        if(fc!=null) {
+            List<Object> data = fc.apply(items,pn);
+            List<ElementData> list = new ArrayList<>();
+            for (int i = 0; i < data.size(); i++) {
+                Coords c = fd.getCoordsList().get(i);
+                list.add(new ElementData(pn, 0, data.get(i), c.getX(), c.getY()));
+            }
+            fd.getValues().addAll(list);
+        }
+    }
+
+    public String getSql(){
+        return "select 1";
+    }
+
+
 }

+ 26 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -869,6 +869,10 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		ArchivesAuto archivesAuto = new ArchivesAuto();
 		archivesAuto.setProjectId(node.getProjectId());
 		archivesAuto.setContractId(node.getContractId());
+		//增加保护
+		if (StringUtils.isNotEmpty(archiveName) && archiveName.length() > 450){
+			archiveName = archiveName.substring(0,450);
+		}
 		archivesAuto.setName(archiveName);//案卷题名
 		if(indexMap==null){
 			indexMap=new HashMap<>(); //监理,施工的按合同段分类从0开始依次设置档号,建设单位的没有合同段 就先按一类依次设置
@@ -1100,11 +1104,29 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 				String nodeId = file.getNodeId();
 				nodeIdSet.add(nodeId);
 			}
-			for(String nodeId:nodeIdSet){
-				ArchiveTreeContract treeNode = archiveTreeContractClient.getArchiveTreeContractById(Long.parseLong(nodeId));
-				String nodeName = treeNode.getNodeName();
-				archiveName=archiveName+nodeName;
+			if (nodeIdSet.size() >= 3) {
+				for(String nodeId:nodeIdSet){
+					ArchiveTreeContract treeNode = archiveTreeContractClient.getArchiveTreeContractById(Long.parseLong(nodeId));
+					if (treeNode== null )  {
+						continue;
+					}
+
+					ArchiveTreeContract pNode = archiveTreeContractClient.getArchiveTreeContractById(treeNode.getParentId());
+					if (pNode == null) {
+						continue;
+					}
+					String nodeName = pNode.getNodeName();
+					archiveName=archiveName+nodeName;
+					break;
+				}
+			}else {
+				for(String nodeId:nodeIdSet){
+					ArchiveTreeContract treeNode = archiveTreeContractClient.getArchiveTreeContractById(Long.parseLong(nodeId));
+					String nodeName = treeNode.getNodeName();
+					archiveName=archiveName+nodeName;
+				}
 			}
+
 		}else{
 			//不存在跨节点  项目名称+节点名称
 			archiveName=archiveName+node.getNodeName();

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -196,6 +196,11 @@ public class ArchiveTreeContractController extends BladeController {
             ar.setArchiveAutoGroupSelect(1);
         }
 
+        if (archiveTreeContract.getArchiveAutoType() != null && archiveTreeContract.getArchiveAutoType()==1) {
+            //最高并卷规则 选择节点的ID
+            ar.setArchiveAutoNodeId(ar.getId());
+        }
+
         boolean b = archiveTreeContractService.updateById(ar);
         //更新下级节点为同一规则
 

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

@@ -1,6 +1,5 @@
 package org.springblade.manager.controller;
 
-import cn.hutool.core.date.StopWatch;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -22,7 +21,6 @@ import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.dto.FormulaBean;
-import org.springblade.manager.dto.TreeNode;
 import org.springblade.manager.dto.WbsParamBean;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.service.*;

+ 12 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/ITurnPointCalculator.java

@@ -1,5 +1,6 @@
 package org.springblade.manager.formula;
 
+import com.alibaba.fastjson.JSON;
 import com.mixsmart.utils.ListUtils;
 import com.mixsmart.utils.StringUtils;
 import org.springblade.common.utils.BaseUtils;
@@ -17,7 +18,7 @@ import static org.springblade.manager.formula.TurnPoint.*;
  * @author yangyj
  */
 public interface ITurnPointCalculator {
-    Long VERSION=202310121730L;
+    Long VERSION=202311130910L;
      String ZD_REG="(?i)zd\\d+";
      /*核心计算*/
     static List<TurnPoint> create(List<Map<String, Object>> data, LinkedHashMap<String, String> configMap,LevelInfo levelInfo) {
@@ -324,14 +325,20 @@ public interface ITurnPointCalculator {
             if (StringUtils.isNotEmpty(tp.getSc())) {
                 if (StringUtils.isNotEmpty(tp.getSj())) {
                     tp.setDx(tp.getSc0L() - tp.getSj0L());
+                    if(tp.isOutOfDx()){
+                        tp.reSetDx();
+                        tp.setSc(tp.getSj0L()+tp.getDx0L());
+                    }
                 }
-                if (StringUtils.isEmpty(tp.getQ())) {
+                /*前视缺失 或 非负前视&实测高程不符&前视在允许范围*/
+                if (StringUtils.isEmpty(tp.getQ())||(tp.getQ0L()>0&&!tp.isRealScMatch()&&tp.isWithinRangeRealQ())) {
                     tp.setQ(info.getSightHeight() - tp.getSc0L());
                 }
             } else if (StringUtils.isNotEmpty(tp.getSj())) {
-                if(StringUtils.isEmpty(tp.getDx())) {
-                    String dx = rangeList(1, 0, info.getDx(), 1, 0, 1).get(0).toString();
-                    tp.setDx(dx);
+                if(StringUtils.isEmpty(tp.getDx())||(StringUtils.isNotEmpty(tp.getDx())&&!info.isRangeOfDx(tp.getDx0L()))) {
+                  /*  String dx = rangeList(1, 0, info.getDx(), 1, 0, 1).get(0).toString();
+                    tp.setDx(dx);*/
+                    tp.reSetDx();
                 }
                 if(StringUtils.isNotEmpty(tp.getQ())){
                     double sc=info.getSightHeight()-tp.getQ0L();

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/LevelInfo.java

@@ -168,12 +168,12 @@ public class LevelInfo implements  Cloneable {
     /**判断高程偏差是否在限定范围*/
     public boolean isRangeOfDx(double x){
         try {
-            double[] dxArr = Arrays.stream(getDx().split(",")).mapToDouble(Double::parseDouble).map(e->e*0.001).toArray();
+            double[] dxArr = Arrays.stream(getDx().split("[,,]")).mapToDouble(Double::parseDouble).map(e->e*0.001).toArray();
             return dxArr[0]<=x&&x<=dxArr[1];
         }catch (Exception e){
             e.printStackTrace();
+            return false;
         }
-        return true;
     }
     /**获取最大允许高差*/
     public double maxHeightDx(){

+ 46 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/TurnPoint.java

@@ -7,8 +7,11 @@ import org.springframework.beans.BeanUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.ThreadLocalRandom;
 import java.util.stream.Collectors;
+import java.util.stream.IntStream;
 
+import static com.mixsmart.utils.CustomFunction.rangeList;
 import static java.math.BigDecimal.ROUND_HALF_UP;
 
 /**
@@ -243,8 +246,12 @@ public class TurnPoint {
         if(negative){
             d=  Math.abs(d);
         }
-        return d >= levelInfo.getMin() && d <= levelInfo.getStep() && levelInfo.getSightHeight() - getQ0L() == getSc0L();
+        return d >= levelInfo.getMin() && d <= levelInfo.getStep() &&isRealScMatch() ;
+    }
 
+    public boolean isRealScMatch(){
+        /*由视线高和假定的前视推导的实测高程是否与记录的实测高程相相等*/
+        return StringUtils.isEquals(StringUtils.number2StringZero(levelInfo.getSightHeight() - getQ0L(), levelInfo.getScale()), getSc());
     }
     /**判断转点前后视是否在范围*/
     public boolean isWithinRangeValueZd(String any){
@@ -255,6 +262,17 @@ public class TurnPoint {
            return false;
     }
 
+    /*获取当前真实前视高差*/
+    public double getRealQ(){
+        return this.levelInfo.getSightHeight()-this.getSc0L();
+    }
+
+    /*判断当前真实前视是否在测量范围*/
+    public boolean isWithinRangeRealQ(){
+        double d=getRealQ();
+        return d >= levelInfo.getMin() && d <= levelInfo.getStep();
+    }
+
     public Boolean needClose() {
         return this.levelInfo.getCloseZd().size() > 1&& levelInfo.isNotPersist();
     }
@@ -336,6 +354,7 @@ public class TurnPoint {
         return x;
     }
 
+
     public List<TurnPoint> close() {
         List<TurnPoint> result = this.levelInfo.getCloseZd();
         Collections.reverse(result);
@@ -442,19 +461,28 @@ public class TurnPoint {
         if(this.levelInfo.isDistance()){
             Double x= BaseUtils.milestone(this.name);
             if(x!=null) {
+                /*只要包含里程信息就必须重置等效间距*/
                 double d=x-this.levelInfo.getMilestone();
+                double symbol=d / Math.abs(d);
                 /*高差转点每次等效减小200米间距,如果还是小于当前测点与仪器高的间距则返回剩余间距*/
                 if(this.levelInfo.getMissdistance()>0) {
                     /*负向减少里程,正向则增大里程*/
-                    double reduce = this.levelInfo.getMissdistance() * (d / Math.abs(d));
-                    /*更新当前仪器里程信息*/
-                    this.levelInfo.setMilestone(this.levelInfo.getMilestone() + reduce);
-                    /*重置高差转点减少的等效间距*/
-                    this.levelInfo.setMissdistance(0d);
-                    /*重新计算测点与仪器间距*/
-                    d=x-this.levelInfo.getMilestone();
+                    double reduce = this.levelInfo.getMissdistance() * symbol;
+                    if(Math.abs(reduce)<Math.abs(d)) {
+                        /*只有当高差转点不能抵消等效间距的时候,更新当前仪器里程信息*/
+                        this.levelInfo.setMilestone(this.levelInfo.getMilestone() + reduce);
+                        /*重新计算测点与仪器间距*/
+                        d = x - this.levelInfo.getMilestone();
+                    }else{
+                        /*高差转点等效间隔不能越过测点,仪器里程设置为距离当前测点5-25米的范围*/
+                        this.levelInfo.setMilestone(x-(ThreadLocalRandom.current().nextInt(21)+5)*symbol);
+                    }
+                    /*遇到有桩号的测点必须重置高差转点减少的等效间距*/
+                    this.levelInfo.setMissdistance(0D);
+                }else{
+                    this.levelInfo.setMilestone(x-(ThreadLocalRandom.current().nextInt(21)+5)*symbol);
                 }
-                if(Math.abs(d)>=200){
+                if(Math.abs(d)>200.0001){
                     /*间距超过200则返回实际间距*/
                     return d;
                 }
@@ -463,6 +491,15 @@ public class TurnPoint {
         return 0;
     }
 
+    /*判断偏差是否在允许范围*/
+    public boolean isOutOfDx(){
+        return !this.levelInfo.isRangeOfDx(getDx0L());
+    }
+    /*重置偏差值*/
+    public void reSetDx(){
+        setDx(rangeList(1, 0, this.levelInfo.getDx(), 1, 0, 1).get(0).toString());
+    }
+
     public TurnPoint getPeer() {
         return peer;
     }

+ 9 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -484,6 +484,15 @@
             is_deleted = 0 and ancestors like concat('', #{ancestors}, '%');
         </if>
 
+        <if test="archiveAutoType ==1 and archiveAutoGroupId != null">
+            update m_archive_tree_contract
+            set
+            archive_auto_type= #{archiveAutoType}
+            where
+            is_deleted = 0 and ancestors like concat('', #{ancestors}, '%')
+            and archive_auto_group_id = #{archiveAutoGroupId} and archive_auto_type = 2 and  archive_auto_group_select = 0 ;
+        </if>
+
         update m_archive_tree_contract
         set
         archive_auto_type= #{archiveAutoType}

+ 66 - 33
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jfireel.expression.Expression;
 import com.mixsmart.utils.*;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.math.IntRange;
 import org.apache.poi.ss.usermodel.*;
 import org.jsoup.nodes.Document;
 import org.springblade.common.utils.BaseUtils;
@@ -1520,34 +1521,60 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     /*调整页数并返回当所有页*/
-   public List<WbsTreeContract>  adjustPageSize(int pageSizeNow,WbsTreeContract wtc){
-         List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
-        int length=list.size();
-         if(pageSizeNow!=length){
-                 int dx = pageSizeNow-length;
-                 if(dx>0) {
-                     /*加页*/
-                     WbsTreeContract origin = list.get(length - 1);
-                     if (origin != null) {
-                         List<WbsTreeContract>  saveList = new ArrayList<>();
-                         for (int i = 0; i < dx; i++) {
-                             WbsTreeContract target = FormulaUtils.copyPage(origin);
-                             saveList.add(target);
-                         }
-                         this.wbsTreeContractService.saveOrUpdateBatch(saveList);
-                         list.addAll(saveList);
-                         String sql="select * from "+origin.getInitTableName()+" where p_key_id ="+origin.getPKeyId();
-                     }
-                 }else{
-                    /*删页*/
-                     int cut = length+dx;
-                     List<Long> removeList = list.stream().skip(cut).map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
-                     List<WbsTreeContract> remain = list.subList(0,cut);
-                     this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted,1).in(WbsTreeContract::getPKeyId,removeList));
-                     return remain;
-                 }
-          }
-         return list;
+   public List<WbsTreeContract>  adjustPageSize(int pageSizeNow,WbsTreeContract wtc,List<FormData> processFds){
+       try {
+           List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
+           int length=list.size();
+           if(pageSizeNow!=length){
+               int dx = pageSizeNow-length;
+               if(dx>0) {
+                   /*加页*/
+                   WbsTreeContract origin = list.get(length - 1);
+                   if (origin != null) {
+                       List<WbsTreeContract>  saveList = new ArrayList<>();
+                       for (int i = 0; i < dx; i++) {
+                           WbsTreeContract target = FormulaUtils.copyPage(origin);
+                           saveList.add(target);
+                       }
+                       this.wbsTreeContractService.saveOrUpdateBatch(saveList);
+                       list.addAll(saveList);
+                       String sql="select * from "+origin.getInitTableName()+" where p_key_id ="+origin.getPKeyId();
+                       @SuppressWarnings("unchecked")
+                       Map<String,String> maps = this.getSqlOne(sql,Map.class);
+                       if(maps!=null){
+                           Set<String> exclude = processFds.stream().filter(FormData::isContent).map(FormData::getKey).collect(Collectors.toSet());
+                           /*移除空值,还有p_key_id、id等固定字段*/
+                           List<String> keys= maps.entrySet().stream().filter(e->Func.isNotEmpty(e.getValue())||exclude.contains(e.getKey())||"p_Key_id".equals(e.getKey())||"id".equals(e.getKey())).map(Map.Entry::getKey).collect(Collectors.toList());
+                           List<String> fields = new ArrayList<>(Arrays.asList("id","p_key_id"));
+                           fields.addAll(keys);
+                           List<String>  values = new ArrayList<>();
+                           keys.forEach(k->{
+                                values.add(maps.get(k));
+                           });
+                           String fieldStr= fields.stream().collect(Collectors.joining(",","(",")"));
+                           String  valueStr=  saveList.stream().map(w->{
+                               List<String> l = new ArrayList<>(values);
+                               l.add(0,w.getPKeyId().toString());
+                               l.add(0,SnowFlakeUtil.getId().toString());
+                               return l.stream().collect(Collectors.joining(",","(",")"));
+                           }).collect(Collectors.joining(","));
+                           String template ="insert into "+origin.getInitTableName()+fieldStr+"  values "+valueStr;
+                           this.jdbcTemplate.execute(template);
+                       }
+                   }
+               }else{
+                   /*删页*/
+                   int cut = length+dx;
+                   List<Long> removeList = list.stream().skip(cut).map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
+                   List<WbsTreeContract> remain = list.subList(0,cut);
+                   this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted,1).in(WbsTreeContract::getPKeyId,removeList));
+                   return remain;
+               }
+           }
+           return list;
+       }catch (Exception e){
+           return Collections.emptyList();
+       }
    }
 
     @Override
@@ -1652,8 +1679,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         List<Map<String,Object>> listMaps=this.jdbcTemplate.queryForList(sql,args);
         if(listMaps.size()>0){
             Map<String,Object> target = listMaps.get(0);
-            if (Map.class.equals(clazz)) {
-                return (T) target;
+            if (Map.class.isAssignableFrom(clazz)) {
+                Map<String, String> result = new HashMap<>();
+                for (Map.Entry<String, Object> entry : target.entrySet()) {
+                    result.put(entry.getKey(), Func.toStr(entry.getValue()));
+                }
+                return clazz.cast(result);
             }
             return BeanUtil.toBean(target,clazz);
         }
@@ -2242,7 +2273,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public List<FormData> createFormDataByTableName(String tableNames) {
-        return this.getSqlList("select b.id, CONCAT(a.tab_en_name,':',b.e_key) code,a.tab_ch_name tableChName,b.e_name eName ,b.e_allow_deviation eAllowDeviation ,b.e_length eLength,c.dict_value eType " +
+        return this.getSqlList("select b.id, CONCAT(a.tab_en_name,':',b.e_key) code,a.tab_ch_name tableChName,b.e_name eName ,b.e_allow_deviation eAllowDeviation ,b.e_length eLength,b.structure,c.dict_value eType " +
                         "from m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id and b.is_deleted=0  " +
                         "LEFT JOIN (select dict_key, dict_value from blade_dict where code ='data_type' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 )c on b.e_type=c.dict_key" +
                         " where  a.tab_en_name in('"+ tableNames+"')"
@@ -2420,8 +2451,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                     Map<String,String> tableKeysCoordsMap= FormulaUtils.getElementCell(wtc.getHtmlUrl());
                     fb02.initFdCoords(tableKeysCoordsMap);
                     /*根据数据长度,增减页数*/
-                    List<WbsTreeContract> pages= this.adjustPageSize(10,wtc);
-
+                    List<WbsTreeContract> wtcList= this.adjustPageSize(fb02.getPageNum(),wtc,processFds);
+                    if(fb02.flush(wtcList)) {
+                        this.jdbcTemplate.execute(fb02.getSql());
+                    }
                  }
                 return R.success("成功");
             }