Просмотр исходного кода

试验导入excel 下载excel相关

liuyc 1 год назад
Родитель
Сommit
7b3ac6b9ae

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

@@ -30,6 +30,7 @@ import org.springblade.core.tool.utils.ResourceUtil;
 import org.springblade.manager.dto.WbsTreeContractDTO2;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
@@ -38,6 +39,7 @@ import org.springblade.manager.vo.*;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -325,10 +327,21 @@ public class WbsTreeContractController extends BladeController {
     @ApiOperation(value = "客户端-下载元素表对应的excel模板", notes = "传入表的pKeyId")
     public void downloadExcel(@RequestParam String pKeyId, HttpServletResponse response) {
         com.spire.xls.Workbook workbook = null;
+        String htmlUrl = "";
         try {
             WbsTreeContract tab = iWbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pKeyId));
-            if (ObjectUtil.isEmpty(tab) || ObjectUtil.isEmpty(tab.getHtmlUrl())) {
-                throw new ServiceException("未获取到对应的表信息");
+            if (ObjectUtil.isEmpty(tab)) {
+                //如果合同段没查询到,那么有可能是试验的数据,试验从项目获取树的表信息
+                WbsTreePrivate treePrivateTab = jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id = " + pKeyId, new BeanPropertyRowMapper<>(WbsTreePrivate.class)).stream().findAny().orElse(null);
+                if (treePrivateTab != null && treePrivateTab.getHtmlUrl() != null) {
+                    htmlUrl = treePrivateTab.getHtmlUrl();
+                }
+            } else {
+                htmlUrl = tab.getHtmlUrl();
+            }
+
+            if (ObjectUtil.isEmpty(htmlUrl)) {
+                throw new ServiceException("未获取到对应的表的html信息");
             }
 
             //将html转换为excel

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

@@ -1909,20 +1909,33 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     public String getHtmlString(String pkeyId) throws Exception {
         String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
         String sys_file_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
+
+        String htmlUrl = "";
+
         WbsTreeContract wbsTreeContract = baseMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
                 .select(WbsTreeContract::getHtmlUrl)
                 .eq(WbsTreeContract::getPKeyId, pkeyId));
-        if (wbsTreeContract == null || wbsTreeContract.getHtmlUrl() == null) {
+
+        if (ObjectUtil.isEmpty(wbsTreeContract)) {
+            //如果合同段没查询到,那么有可能是试验的数据,试验从项目获取树的表信息
+            WbsTreePrivate treePrivateTab = jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id = " + pkeyId, new BeanPropertyRowMapper<>(WbsTreePrivate.class)).stream().findAny().orElse(null);
+            if (treePrivateTab != null && treePrivateTab.getHtmlUrl() != null) {
+                htmlUrl = treePrivateTab.getHtmlUrl();
+            }
+        } else {
+            htmlUrl = wbsTreeContract.getHtmlUrl();
+        }
+
+        if (ObjectUtil.isEmpty(htmlUrl)) {
             return "";
         }
 
-        String fileUrl = wbsTreeContract.getHtmlUrl();
-        File file1 = ResourceUtil.getFile(fileUrl);
+        File file1 = ResourceUtil.getFile(htmlUrl);
         InputStream fileInputStream;
         if (file1.exists()) {
             fileInputStream = new FileInputStream(file1);
         } else {
-            String path = sys_file_net_url + fileUrl.replaceAll("//", "/").replaceAll(file_path, "");
+            String path = sys_file_net_url + htmlUrl.replaceAll("//", "/").replaceAll(file_path, "");
             fileInputStream = CommonUtil.getOSSInputStream(path);
         }