Ver código fonte

合并提交

zhuwei 11 horas atrás
pai
commit
2478d47c74

+ 1 - 1
blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@@ -89,7 +89,7 @@ public interface LauncherConstant {
      */
     //更107服务器时打包的时候要改成192.168.0.109
     // 73用这个 127.0.0.1    113要用这个 10.0.0.6
-    String NACOS_DEV_ADDR = "127.0.0.1:8848";
+    String NACOS_DEV_ADDR = "152.168.2.11:8848";
 
     /**
      * nacos prod 地址

+ 1 - 0
blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -185,6 +185,7 @@ public class CommonUtil {
             URLConnection conn = url.openConnection();
 
             conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+            System.out.println("-----后------"+urlStr);
             return conn.getInputStream();
         } catch (Exception e) {
             System.out.println("-----后------"+urlStr);

+ 1 - 7
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClient.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import org.springblade.business.dto.ReSigningEntrustDto;
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.ExcelEditCallback;
 import org.springblade.manager.entity.ExcelTab;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
@@ -100,13 +101,6 @@ public interface ExcelTabClient {
     @PostMapping(API_PREFIX + "/getTheLogPdInfo")
     void getTheLogPdInfo(@RequestParam String logPkeyId,  @RequestParam String nodePrimaryKeyId, @RequestParam String recordTime, @RequestParam String contractId,@RequestParam Long createUser) throws Exception;
 
-    /**
-     * 在线excel 保存
-     * @param excelEditCallback
-     */
-    @PostMapping(API_PREFIX + "/saveExcelTableLink")
-    boolean saveExcelTableLink(@RequestBody ExcelEditCallback excelEditCallback);
-
     @PostMapping(API_PREFIX + "/feign/copeBussTab")
     R copeBussTab(@RequestParam Long pKeyId, @RequestParam String header) throws Exception;
 }

+ 1 - 5
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/ExcelTabClientFallBack.java

@@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
 import org.springblade.business.dto.ReSigningEntrustDto;
 import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.ExcelEditCallback;
 import org.springblade.manager.entity.ExcelTab;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -106,11 +107,6 @@ public class ExcelTabClientFallBack implements ExcelTabClient {
 
     }
 
-    @Override
-    public boolean saveExcelTableLink(ExcelEditCallback excelEditCallback) {
-        return false;
-    }
-
     @Override
     public R copeBussTab(Long pKeyId, String header) throws Exception {
         return null;

+ 6 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -398,7 +398,12 @@ public class EVisaTaskCheckController {
                 flow.setDisabled(true);
                 List<String> names = new ArrayList<>();
                 for (Long id : flowUser) {
-                    names.add(userNamesMap.get(id).getName());
+                    User user = userNamesMap.get(id);
+                    if(user==null || Func.isNull(user)){
+                        names.add(id+"");
+                    }else{
+                        names.add(user.getName());
+                    }
                 }
                 flow.setTips("以下用户账号已经删除:"+String.join(",",names));
                 continue;

+ 63 - 39
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/Archive2Controller.java

@@ -59,13 +59,16 @@ public class Archive2Controller {
     @Resource(name = "archivePoolExecutor")
     private ThreadPoolExecutor archExecutor;
 
-    @Scheduled(cron = "0/30 * * * * ?")
+    @Scheduled(cron = "0/10 * * * * ?")
     public void SignTaskBatchPng() {
         //执行代码
         log.info("分解pdf专图片");
-       // String sql = "SELECT distinct b.id,b.archive_id as archiveId ,REPLACE(b.file_url,'https://xinan1.zos.ctyun.cn','http://100.86.2.1:80') as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.split_status=10 LIMIT 20";
-        String sql = "SELECT distinct b.id,b.archive_id as archiveId ,b.file_url  as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.split_status=2 LIMIT 20";
-        List<TaskArchiveSplitVO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TaskArchiveSplitVO.class));
+      //  String sql = "SELECT distinct b.id,b.archive_id as archiveId ,REPLACE(b.file_url,'https://xinan1.zos.ctyun.cn','http://100.86.2.1:80') as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.split_status=2 LIMIT 20";
+      //  String sql = "SELECT distinct b.id,b.archive_id as archiveId ,b.file_url  as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.split_status=2 LIMIT 20";
+       // String sql = "SELECT distinct b.id,b.archive_id as archiveId ,'/Users/hongchuangyanfa/Downloads/ab13344e4943222efffa89f6db3604a6.pdf'  as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.id=1989148760491425792 LIMIT 20";
+       //String sql = "SELECT distinct b.id,b.archive_id as archiveId ,'/Users/hongchuangyanfa/Downloads/1a39d7b4610904104cc65739cddf24c6.pdf'  as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.id=1989154852734763008 LIMIT 20";
+       String sql = "SELECT distinct b.id,b.archive_id as archiveId ,'/Users/hongchuangyanfa/Downloads/293ec019215ba23e78ff11ba1f3e6361.pdf'  as fileUrl from u_archives_auto a ,u_archive_file b  where a.id=b.archive_id  and a.is_deleted=0 and b.is_deleted=0 and a.id=1989148775205044224 LIMIT 20";
+       List<TaskArchiveSplitVO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TaskArchiveSplitVO.class));
 
         if (query != null && query.size() >= 1) {
             for (TaskArchiveSplitVO dataInfo : query) {
@@ -126,6 +129,7 @@ public class Archive2Controller {
             }
 
             String filePath = startPage + "--" + (listPdf.size() + 1);
+            System.out.println("filePath="+filePath);
             //
             ArchivesSplitInfoVO data =new ArchivesSplitInfoVO();
             data.setId(taskSign.getId());
@@ -147,6 +151,7 @@ public class Archive2Controller {
             String fileUlr = taskSign.getFileUrl();
             String firstPage = FileUtils.getSysLocalFileUrl() + "archiveSplit/";
             String firstFileUrl = taskSign.getFirstFileUrl();
+
             String firstUrl[] = firstFileUrl.split("--");
             int basePage = Integer.parseInt(firstUrl[1]);
             int baseStart = Integer.parseInt(firstUrl[0]);
@@ -155,6 +160,7 @@ public class Archive2Controller {
             //将imagePath 的数据转成一个可解析的html
             String htmlUrl = pngToHtml(firstPage, archiveId, taskSign.getFirstFileUrl());
             System.out.println("分解002=" + htmlUrl);
+           int pdfPage = FileUtils.getPdfNum(fileUlr);
 
             if (htmlUrl.indexOf("_001.html") >= 0 && htmlUrl.indexOf("archiveSplit") >= 0) {
                 String htmlString = IoUtil.readToString(new FileInputStream(htmlUrl));
@@ -164,7 +170,9 @@ public class Archive2Controller {
                 //由于解析已经成功,可能数据已经分解过,需要删除
                 if (trs != null && trs.size() >= 1) {
                     String sql = "delete from u_archive_file where id<>'" + taskSign.getId() + "' and archive_id='" + archiveId + "'";
+                    String sql2 = "update  u_archive_file set file_name='整份pdf'  where id='" + taskSign.getId() + "' and archive_id='" + archiveId + "'";
                     jdbcTemplate.execute(sql);
+                    jdbcTemplate.execute(sql2);
                 }
 
                 for (int i = 0; i <= trs.size() - 1; i++) {
@@ -179,7 +187,11 @@ public class Archive2Controller {
                     int startYm = 0;
                     int endYm = 0;
                     if (i < trs.size() - 1) {
-                        startYm = Func.toInt(ym);
+                        if(i==1){
+                            startYm=1;
+                        }else{
+                            startYm = Func.toInt(ym);
+                        }
                         String enData = trs.get(i + 1).select("td").get(3).text();
                         if (enData.indexOf("页") >= 0) {
                             enData = trs.get(i + 2).select("td").get(3).text();
@@ -210,6 +222,7 @@ public class Archive2Controller {
                     bkb = endYm;
                 }
             } else {
+                RedisTemplate.delete("splithtml-" + archiveId);
                 return;
             }
 
@@ -223,30 +236,36 @@ public class Archive2Controller {
             getPdfByPage(baseStart, basePage, fileUlr, jnmuUrl);
             saveDataToMysql(jnmuUrl, "卷内目录", taskSign.getId(), 1, -3, dutyUser, "");
 
-            // 卷内备考表
-            String jnbkbUrl = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + archiveId + "_jnbkb_001.pdf";
-            getPdfByPage(bkb + 1, bkb + 1, fileUlr, jnbkbUrl);
-
-            File jlPdfFile = new File(jnbkbUrl);
-            if (jlPdfFile.exists()) {
-                saveDataToMysql(jnbkbUrl, "卷内备考表", taskSign.getId(), 1, 100, dutyUser, "");
-            }
-
-            // 背脊表
-            String bjbUrl = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + archiveId + "_beiji_001.pdf";
-            String bjbUrlPng = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + archiveId + "_beiji_001.png";
 
-            int pdfByPage = getPdfByPage(bkb + 2, bkb + 2, fileUlr, bjbUrl);
-            if(pdfByPage==0){
-                File bgImgFile = new File(bjbUrlPng);
-                if (!bgImgFile.exists()) {
-                    int dataNum = savePdfAsImage(1, bjbUrl, bjbUrlPng);
-                }
-                String state = OcrTitle(bjbUrlPng, "3");
-                if (state.equals("1")) {
-                    saveDataToMysql(bjbUrl, "背脊表", taskSign.getId(), 1, 101, dutyUser, "");
+            // 卷内备考表
+            for (int i = 0; i < 3; i++) {
+                int pageNo = pdfPage -i;
+                // 背脊表
+                String bjbUrl = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + archiveId + "_beiji_001.pdf";
+                String bjbUrlPng = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + archiveId + "_beiji_001.png";
+
+                int pdfByPage = getPdfByPage(pageNo, pageNo, fileUlr, bjbUrl);
+                if (pdfByPage == 0) {
+                    File bgImgFile = new File(bjbUrlPng);
+                    if (!bgImgFile.exists()) {
+                        int dataNum = savePdfAsImage(1, bjbUrl, bjbUrlPng);
+                    }
+                    //卷内备考表
+                    String state = OcrTitle(bjbUrlPng, "2");
+                    if (state.equals("1")) {
+                        saveDataToMysql(bjbUrl, "卷内备考表", taskSign.getId(), 1, 100, dutyUser, "");
+                    }
+                    String state2 = OcrTitle(bjbUrlPng, "3");
+                    if (state2.equals("1")) {
+                        saveDataToMysql(bjbUrl, "背脊表", taskSign.getId(), 1, 101, dutyUser, "");
+                    }
+                    bgImgFile.delete();
+                }else{
+                    File bgImgFile = new File(bjbUrl);
+                    if (!bgImgFile.exists()) {
+                        bgImgFile.delete();
+                    }
                 }
-                bgImgFile.delete();
             }
             // 修改任务状态
             String updateSql = "update u_archives_split_info set status=3 where id=" + taskSign.getId();
@@ -286,7 +305,7 @@ public class Archive2Controller {
                     new InputStreamReader(process.getInputStream()));
             String htmlUrl;
             while ((htmlUrl = reader.readLine()) != null) {
-                System.out.println(htmlUrl);
+
                 if (htmlUrl.indexOf("html文件路径") >= 0 && htmlUrl.indexOf("_001.html") >= 0 && htmlUrl.indexOf("archiveSplit") >= 0) {
                     lasHhtmlUrl = htmlUrl.replace("html文件路径", "");
                 }
@@ -305,12 +324,13 @@ public class Archive2Controller {
     }
 
     public static String OcrTitle(String fileUrl, String type) {
-        String lasHhtmlUrl = "";
         try {
             // 定义Python解释器路径和脚本路径
             String pythonScript = "/Users/hongchuangyanfa/Desktop/PycharmProjects/splitPngByTitle.py";
             // 构建命令
             ProcessBuilder pb = new ProcessBuilder("python3", pythonScript, fileUrl, type);
+          //  ProcessBuilder pb = new ProcessBuilder("conda", "run", "-n", "paddle_env","python3", pythonScript, fileUrl, type);
+
             Process process = pb.start();
 
             // 读取Python脚本输出
@@ -326,7 +346,7 @@ public class Archive2Controller {
             // 等待进程结束
             int exitCode = process.waitFor();
             if (exitCode == 0) {
-                return lasHhtmlUrl;
+                return "0";
             } else {
                 return "1";
             }
@@ -339,7 +359,8 @@ public class Archive2Controller {
 
     public static int getPdfByPage(int startPage, int endPage, String filePath, String savePath) {
         try {
-            InputStream inputStreamByUrl = CommonUtil.getOSSInputStream(filePath);
+           // InputStream inputStreamByUrl = CommonUtil.getOSSInputStream(filePath);
+            InputStream inputStreamByUrl = new FileInputStream( new File(filePath));// CommonUtil.getOSSInputStream(filePath);
             // 加载PDF文件
             PDDocument document = PDDocument.load(inputStreamByUrl);
             // 创建新文档
@@ -366,7 +387,10 @@ public class Archive2Controller {
     }
 
     public static int savePdfAsImage(int pageNum, String filePath, String outputPath) {
-        try (InputStream inputStream = FileUtils.getInputStreamByUrl(filePath);
+        try (
+
+              //  InputStream inputStream = FileUtils.getInputStreamByUrl(filePath);
+             InputStream inputStream = new FileInputStream(new File(filePath));
              PDDocument document = PDDocument.load(inputStream)) {
 
             // 验证页码范围
@@ -431,16 +455,16 @@ public class Archive2Controller {
         return 200;
     }
 
-/*    public static void main(String[] args) {
+    public static void main11(String[] args) {
         // 获取pdf第二页的数据
-        String fileUrl = "/Users/hongchuangyanfa/Desktop/archiveSplit/PDF合并.pdf";
-        String firstUrl = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + 123 + "first__" + 1 + "__.pdf";
-        int pdfByPage = getPdfByPage(0, 1, fileUrl, firstUrl);
+        String fileUrl = "/Users/hongchuangyanfa/Downloads/e4a7bbe7ae34444206cb989364314f12.pdf";
+        String firstUrl = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + 123 + "first__" + 2 + "__.pdf";
+        int pdfByPage = getPdfByPage(2, 2, fileUrl, firstUrl);
         File file = new File(firstUrl);
 
         // 保存第一页为300DPI图片
-        String imagePath = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + 123 + "first__" + 1 + "__.png";
+        String imagePath = FileUtils.getSysLocalFileUrl() + "archiveSplit/" + 123 + "first__" + 2 + "__.png";
         File imgfile = new File(imagePath);
-        int dataNum = savePdfAsImage(1, fileUrl, imagePath);
-    }*/
+        int dataNum = savePdfAsImage(1, firstUrl, imagePath);
+    }
 }

+ 1 - 1
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/ChekSignData.java

@@ -47,7 +47,7 @@ public class ChekSignData {
     @Resource(name = "taskExecutor1")
     private ThreadPoolExecutor executor;
 
-    @Scheduled(cron = "0/10 * * * * ?")
+  //  @Scheduled(cron = "0/10 * * * * ?")
     public void SignInfo() {
         // 质检SQL
         String sql = "SELECT a.id ,a.e_visa_pdf_url,b.process_instance_id,a.contract_id,a.project_id,c.remark_type from u_information_query a ,u_task b ,m_project_info c where  c.id=a.project_id  and a.`status` = 2 and a.is_deleted=0 and a.e_visa_pdf_url is not null  and b.form_data_id = a.id and b.`status` = 2 and a.chek_status=1 LIMIT 30";

+ 1 - 1
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVController.java

@@ -59,7 +59,7 @@ public class EVController {
     @Resource(name = "taskExecutor1")
     private ThreadPoolExecutor executor;
 
-    @Scheduled(cron = "0/10 * * * * ?")
+    //@Scheduled(cron = "0/10 * * * * ?")
     public void SignInfo() {
         //执行代码
 

+ 4 - 4
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVDataServiceImpl.java

@@ -236,7 +236,7 @@ public class EVDataServiceImpl implements EVDataService {
                 if (taskApp.getApprovalType() == 1 || taskApp.getApprovalType() == 9) { //
                     //
                     String sys_isonline = ParamCache.getValue(CommonConstant.SYS_ISONLINE);
-                    String pdfPage = "0";
+                    int pdfPage = 0;
                     Long pdfSize = 0L;
                     String nodePdfUrl = "";
 
@@ -342,7 +342,7 @@ public class EVDataServiceImpl implements EVDataService {
                     //电签成功后需要将check_status改为1,进行电签检测
                     String updateCheckStatus="update  u_information_query set chek_status=1 where id='" + taskApp.getFormDataId() + "' and chek_status!=0 ";
                     jdbcTemplate.execute(updateCheckStatus);
-                    updateSql = "update u_information_query set pdf_trial_url_position='" + pdfTrialUrlPosition + "',business_time='" + taskApp.getPdfDate() + "',node_pdf_url='" + nodePdfUrl + "',e_visa_pdf_page=" + pdfPage + ",e_visa_pdf_size=" + pdfSize + ",e_visa_pdf_url='" + taskApp.getLastFilePdfUrl() + "',status='" + taskApp.getSigType() + "',update_time=SYSDATE() where id='" + taskApp.getFormDataId() + "' ";
+                    updateSql = "update u_information_query set pdf_trial_url_position='" + pdfTrialUrlPosition + "',business_time='" + taskApp.getPdfDate() + "',node_pdf_url='" + nodePdfUrl + "',e_visa_pdf_page='" + pdfPage + "',e_visa_pdf_size=" + pdfSize + ",e_visa_pdf_url='" + taskApp.getLastFilePdfUrl() + "',status='" + taskApp.getSigType() + "',update_time=SYSDATE() where id='" + taskApp.getFormDataId() + "' ";
                     //修改 计量 需要引用的 附件信息
                     String updataFile = "update s_attachment_form set file_url='"+nodePdfUrl+"' ,file_pdf_url='"+nodePdfUrl+"' where select_id='"+taskApp.getFormDataId()+"' ";
                     jdbcTemplate.execute(updataFile);
@@ -583,7 +583,7 @@ public class EVDataServiceImpl implements EVDataService {
                 return;
             }
 
-            List<Map<String, Object>> projectList = jdbcTemplate.queryForList("select * from u_project_info where  id = " + taskApp.getProjectId());
+            List<Map<String, Object>> projectList = jdbcTemplate.queryForList("select * from m_project_info where  id = " + taskApp.getProjectId());
             if (projectList == null || Func.isEmpty(projectList)) {
                 taskApp.setSigState(2);
                 taskApp.setSignSmg("未获取项目信息");
@@ -591,7 +591,7 @@ public class EVDataServiceImpl implements EVDataService {
                 return;
             } else {
                 Map<String, Object> projectInfo = projectList.get(0);
-                String remarkType = projectInfo.get("remarkType")+"";//.getRemarkType();
+                String remarkType = projectInfo.get("remark_type")+"";//.getRemarkType();
                 if (remarkType != null && Func.isNotEmpty(remarkType) && remarkType.equals("2")) {
                     taskApp.setRemarkType("2");
                 }else if (remarkType != null && Func.isNotEmpty(remarkType) && remarkType .equals("3")) {

+ 4 - 4
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/utils/FileUtils.java

@@ -103,10 +103,10 @@ public class FileUtils {
     }
 
 
-    public static String getPdfNum(String url) {
+    public static Integer getPdfNum(String url) {
         try {
             if (url.isEmpty() || url.equals("")) {
-                return "0";
+                return 0;
             }
             File file1 = new File(url);
             InputStream pdfInputStream;
@@ -119,11 +119,11 @@ public class FileUtils {
             //获取PDF文件
             PDDocument document = PDDocument.load(pdfInputStream);
             int page = document.getPages().getCount();
-            return page + "";
+            return page;
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return "0";
+        return 0;
     }
 
 }

+ 1 - 1
blade-service/blade-land/src/main/java/org/springblade/land/mapper/CompensationInfoMapper.xml

@@ -27,7 +27,7 @@
     <select id="getTables" resultType="org.springblade.manager.entity.WbsTreePrivate">
         SELECT * FROM m_wbs_tree_private
         WHERE project_id = #{projectId} and parent_id = (select id from m_wbs_tree_private
-                where project_id = #{projectId} and wbs_type = 5 and parent_id != 0 and `type` = 1 and node_type = #{nodeType})
+                where project_id = #{projectId} and wbs_type = 5 and parent_id != 0 and `type` = 1 and node_type = #{})
         order by sort
     </select>
     <select id="getWbsPrivateTable" resultType="org.springblade.manager.entity.WbsTreePrivate">

+ 11 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/SubTable.java

@@ -213,15 +213,16 @@ public class SubTable {
         if(this.design!=null) {
              designs = this.design.getValues().stream().map(ElementData::stringValue).collect(Collectors.toList());
         }
-        for(FormData item:this.mainList){
 
+
+        for(FormData item:this.mainList){
             String key = FormulaUtils.parseItemName(item.getEName()).trim();
             String code = item.getCode();
             if(code!=null && code.contains(":")){
                 String[] split = code.split(":");
                 String key1 = split[0];
                 String key2 = split[1];
-                if(this.getPlStr().indexOf(key1)>=0 && this.getPlStr().indexOf(key2)>=0){
+                if(this.getPlStr()!=null && this.getPlStr().indexOf(key1)>=0 && this.getPlStr().indexOf(key2)>=0){
                     System.out.println("123");
                 }else{
                     keyMap.put(key, "1");
@@ -230,6 +231,14 @@ public class SubTable {
                 keyMap.put(key, "1");
             }
         }
+        // 这里处理公式类型
+        if(this.group!=null && this.group.size()>0){
+            for (String key : this.group.keySet()){
+                if(keyMap.containsKey(key)){
+                    keyMap.remove(key);
+                }
+            }
+        }
 
         // 计算元素是否需要覆盖
         List<Object> data = this.data.getRawValue();

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

@@ -229,7 +229,5 @@ public interface IExcelTabService extends BaseService<ExcelTab> {
 
     void setAutomatic(Long pkeyId, String string, Document doc);
 
-    Map<String, String> getFormulaData(JSONArray dataArray, WbsTreeContract wbsTreeTable);
-
     StringBuilder buildMTableInsertSql(String tabName, Map<String, String> dataMap2, Object id, Object groupId, Object pKeyId);
 }