Prechádzať zdrojové kódy

Reapply "同步-同步合同段-记录历史excel,生成pdf时优先使用历史excel"

This reverts commit cc664ef1b91d15995417b5a4cb6e6f0fe727f315.
LHB 2 týždňov pred
rodič
commit
61a955a100

+ 5 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContractOldHtml.java

@@ -29,6 +29,11 @@ public class WbsTreeContractOldHtml {
      */
     private String oldHtmlUrl;
 
+    /**
+     * 上报之前的html表单
+     */
+    private String oldExcelUrl;
+
     /**
      *  是否删除(0-正常,1-已删除)
      */

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1052,6 +1052,7 @@ public class InformationWriteQueryController extends BladeController {
                     List<WbsTreeContractOldHtml> data = new ArrayList<>();
                     try {
                         for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
+                            ExcelTab byId = excelTabClient.getById(String.valueOf(wbsTreeContract.getExcelId()));
                             WbsTreeContractOldHtml oldHtml = new WbsTreeContractOldHtml();
                             oldHtml.setId(SnowFlakeUtil.getId());
                             oldHtml.setCreateUser(getUser().getUserId());
@@ -1065,6 +1066,8 @@ public class InformationWriteQueryController extends BladeController {
 
                             oldHtml.setContractFormId(wbsTreeContract.getPKeyId());
                             oldHtml.setOldHtmlUrl(copyPath.toFile().getAbsolutePath());
+                            //记录历史excel路径
+                            oldHtml.setOldExcelUrl(byId.getFileUrl());
                             data.add(oldHtml);
                         }
                         List<Long> collect = data.stream().map(WbsTreeContractOldHtml::getContractFormId).collect(Collectors.toList());

+ 19 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -2125,9 +2125,22 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
 
         //获取清表信息
-        ExcelTab excelTab = this.getById(wbsTreeContract.getExcelId());
-        if (excelTab == null) {
-            return R.fail("未获取到清表信息");
+        String newFileUrl = null;
+        //获取当前表单的历史html
+        // 这里先从旧html表中获取  如果有用旧的html m_wbs_tree_contract_old_html
+        WbsTreeContractOldHtml oldHtml = wbsTreeContractOldHtmlService.getOne(Wrappers.<WbsTreeContractOldHtml>lambdaQuery()
+                .eq(WbsTreeContractOldHtml::getContractFormId, pkeyId)
+                .eq(WbsTreeContractOldHtml::getIsDeleted, 0)
+                .last("limit 1"));
+        if (oldHtml != null && StringUtils.isNotEmpty(oldHtml.getOldHtmlUrl())) {
+            newFileUrl = oldHtml.getOldHtmlUrl();
+        } else {
+            //获取清表信息
+            ExcelTab excelTab = this.getById(wbsTreeContract.getExcelId());
+            if (excelTab == null) {
+                return R.fail("未获取到清表信息");
+            }
+            newFileUrl = excelTab.getFileUrl();
         }
 
         Map<String, Object> DataInfo = getBussDataInfo(pkeyId, 0);
@@ -2135,11 +2148,11 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         Integer realFillRate = 0;
 
         //获取excel流 和 html流
-        InputStream exceInp = CommonUtil.getOSSInputStream(excelTab.getFileUrl());
+        InputStream exceInp = CommonUtil.getOSSInputStream(newFileUrl);
 
         Workbook workbook = null;
-        int index = excelTab.getFileUrl().lastIndexOf(".");
-        String suffix = excelTab.getFileUrl().substring(index);
+        int index = newFileUrl.lastIndexOf(".");
+        String suffix = newFileUrl.substring(index);
 
         if (".xls".equals(suffix)) {
             workbook = new XSSFWorkbook(exceInp);

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsSynchronousEViSaServiceImpl.java

@@ -8,6 +8,7 @@ import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.tool.utils.CollectionUtil;
 import org.springblade.manager.entity.*;
+import org.springblade.manager.feign.ExcelTabClient;
 import org.springblade.manager.feign.WbsTreeContractOldHtmlClient;
 import org.springblade.manager.mapper.TextdictInfoMapper;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
@@ -51,6 +52,8 @@ public class WbsSynchronousEViSaServiceImpl {
 
     @Autowired
     private WbsTreeContractOldHtmlService wbsTreeContractOldHtmlService;
+    @Autowired
+    private ExcelTabClient excelTabClient;
 
     @Transactional(rollbackFor = Exception.class)
     public void updateTextDictInfo(Long projectId, List<Long> editPrivateIds, List<TextdictInfo> addData) {
@@ -221,6 +224,8 @@ public class WbsSynchronousEViSaServiceImpl {
             List<WbsTreeContractOldHtml> data = new ArrayList<>();
             try {
                 for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
+                    ExcelTab byId = excelTabClient.getById(String.valueOf(wbsTreeContract.getExcelId()));
+
                     //如果有历史记录 并且状态为0 则不记录当前历史记录
                     long count = wbsTreeContractOldHtmlService.count(Wrappers.<WbsTreeContractOldHtml>lambdaQuery()
                             .eq(WbsTreeContractOldHtml::getContractFormId, wbsTreeContract.getPKeyId())
@@ -241,7 +246,9 @@ public class WbsSynchronousEViSaServiceImpl {
                     Files.copy(sourcePath, copyPath, StandardCopyOption.REPLACE_EXISTING);
 
                     oldHtml.setContractFormId(wbsTreeContract.getPKeyId());
+                    //记录历史数据 合同段当前 html 当前excel
                     oldHtml.setOldHtmlUrl(copyPath.toFile().getAbsolutePath());
+                    oldHtml.setOldExcelUrl(byId.getFileUrl());
                     data.add(oldHtml);
                 }
                 wbsTreeContractOldHtmlService.saveBatch(data);