liuyc 2 năm trước cách đây
mục cha
commit
d6083a359f

+ 10 - 9
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -10,16 +10,11 @@ import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 
-import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
-import org.apache.poi.POIXMLDocumentPart;
-import org.apache.poi.hssf.usermodel.HSSFPicture;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.xssf.usermodel.*;
-import org.apache.poi.xwpf.usermodel.XWPFRelation;
 import org.springblade.business.entity.ImageClassificationShow;
 import org.springblade.business.feign.OperationLogClient;
 import org.springblade.business.feign.RecycleBinClient;
@@ -63,9 +58,6 @@ import org.springblade.business.service.IImageClassificationFileService;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.awt.*;
-import java.awt.geom.AffineTransform;
-import java.awt.image.BufferedImage;
 import java.io.*;
 import java.net.URL;
 import java.net.URLConnection;
@@ -551,11 +543,20 @@ public class ImageClassificationFileController extends BladeController {
                 .collect(Collectors.toList());
         if (ObjectUtil.isNotEmpty(fileVO.getIsApp()) && fileVO.getIsApp() == 1) {
             //App按照创建时间分组
+            List<Map<String, Object>> list = new LinkedList<>();
             Map<String, List<ImageClassificationFileVO>> groupedRecords = sortedRecords.stream()
                     .collect(Collectors.groupingBy(vos -> DateUtil.format(vos.getCreateTime(), "yyyy-MM-dd"),
                             LinkedHashMap::new,
                             Collectors.toList()));
-            return R.data(groupedRecords);
+            for (Map.Entry<String, List<ImageClassificationFileVO>> stringObjectEntry : groupedRecords.entrySet()) {
+                String date = stringObjectEntry.getKey();
+                List<ImageClassificationFileVO> value = stringObjectEntry.getValue();
+                Map<String, Object> stringObjectMap = new HashMap<>();
+                stringObjectMap.put("name", date);
+                stringObjectMap.put("child", value);
+                list.add(stringObjectMap);
+            }
+            return R.data(list);
         }
         page.setRecords(sortedRecords);
         return R.data(page);

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -3528,7 +3528,7 @@ public class ExcelTabController extends BladeController {
                     ExcelTab excelTabNode = new ExcelTab();
                     excelTabNode.setId(SnowFlakeUtil.getId());
                     excelTabNode.setParentId(excelTabParentNode.getId());
-                    excelTabNode.setFileType(excelTabParentNode.getFileType());
+                    excelTabNode.setFileType(3); //不要上传按钮 默认=3
                     excelTabNode.setName(fileDTO.getOriginalFilename().split(".xls")[0]);
                     excelTabNode.setAlias(excelTabParentNode.getAlias() + "," + excelTabParentNode.getId());
                     excelTabNode.setFileUrl(bladeFile.getData().getLink());

+ 10 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -318,7 +318,7 @@ public class WbsTreeContractController extends BladeController {
                         //获取单元格所属的合并单元格区域
                         CellRangeAddress mergedRegion = findMergedRegion(poiSheet, cell.getRowIndex(), cell.getColumnIndex());
                         if (mergedRegion != null) {
-                            // 存储需要修改的合并单元格信息
+                            //存储需要修改的合并单元格信息
                             cellsToModify.add(new CellModificationInfo(cell, mergedRegion));
                         }
                     }
@@ -335,7 +335,7 @@ public class WbsTreeContractController extends BladeController {
                     CellStyle cellStyle = poiWorkbook.createCellStyle();
                     CellStyle sourceCellStyle = cell.getCellStyle(); //获取原单元格的样式
                     cellStyle.cloneStyleFrom(sourceCellStyle); //复制样式
-                    setBlackBorder(cellStyle); // 设置边框
+                    setBlackBorder(cellStyle); //设置边框
                     cell.setCellStyle(cellStyle);
 
                     if (info.hasMergedRegion()) { //修改合并单元格边框线
@@ -459,7 +459,7 @@ public class WbsTreeContractController extends BladeController {
         SimpleDateFormat inputDateFormat = new SimpleDateFormat("yyyy/M/dd");
         SimpleDateFormat outputDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
 
-        //导入的excel转换html
+        //导入的excel转换html的路径
         Long id = SnowFlakeUtil.getId();
         String importExcelFilePath = FileUtils.getSysLocalFileUrl();
         String importExcelTOHtmlPath = importExcelFilePath + "/pdf//" + id + ".html";
@@ -468,6 +468,7 @@ public class WbsTreeContractController extends BladeController {
         String url_1 = "";
         com.spire.xls.Workbook workbook = null;
         try {
+            //把导入的excel转换成html
             workbook = new com.spire.xls.Workbook();
             workbook.loadFromHtml(file.getInputStream());
             workbook.saveToFile(importExcelTOHtmlPath, FileFormat.HTML);
@@ -476,9 +477,9 @@ public class WbsTreeContractController extends BladeController {
             url_1 = importExcelTOHtmlPath.split("pdf//")[0];
             String excelToHtmlFileUrl = url_1 + "/pdf/" + id + "_files/" + sheet.getName() + ".html";
             String htmlString_2 = IoUtil.readToString(new FileInputStream(ResourceUtil.getFile(excelToHtmlFileUrl)));
-            //循环遍历解析tr、td
-            Document doc_1 = Jsoup.parse(htmlString_1);
-            Document doc_2 = Jsoup.parse(htmlString_2);
+            //循环遍历解析两张html的tr、td
+            Document doc_1 = Jsoup.parse(htmlString_1); //合同段表的html
+            Document doc_2 = Jsoup.parse(htmlString_2); //导入excel转换的html
             Elements trElements1 = doc_1.select("table tbody tr");
             Elements trElements2 = doc_2.select("table tbody tr");
             for (int i = 0; i < trElements1.size(); i++) {
@@ -609,9 +610,9 @@ public class WbsTreeContractController extends BladeController {
 
     @PostMapping("/getConcealedWorksNodeTree")
     @ApiOperationSupport(order = 15)
-    @ApiOperation(value = "获取合同段隐蔽工程节点树", notes = "传入合同段id")
-    public R<List<WbsTreeContractVO>> getConcealedWorksNodeTree(@RequestParam String contractId) {
-        List<WbsTreeContractVO> result = iWbsTreeContractService.getConcealedWorksNodeTree(contractId);
+    @ApiOperation(value = "获取合同段隐蔽工程节点树-懒加载", notes = "传入合同段id、父级id")
+    public R<List<WbsTreeContractVO>> getConcealedWorksNodeTree(@RequestParam String contractId, @RequestParam String parentId) {
+        List<WbsTreeContractVO> result = iWbsTreeContractService.getConcealedWorksNodeTree(contractId, parentId);
         return R.data(result);
     }
 

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -69,7 +69,7 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     List<AppWbsTreeContractVO> searchNodeAllTableAndFile(String primaryKeyId, String type, String contractId, String projectId);
 
-    List<WbsTreeContractVO> getConcealedWorksNodeTree(String contractId);
+    List<WbsTreeContractVO> getConcealedWorksNodeTree(String contractId, String parentId);
 
 
 }

+ 26 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -1214,7 +1214,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     }
 
     @Override
-    public List<WbsTreeContractVO> getConcealedWorksNodeTree(String contractId) {
+    public List<WbsTreeContractVO> getConcealedWorksNodeTree(String contractId, String parentId) {
         List<WbsTreeContract> wbsTreeContracts = this.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
                 .select(WbsTreeContract::getId, WbsTreeContract::getPKeyId, WbsTreeContract::getParentId, WbsTreeContract::getNodeType,
                         WbsTreeContract::getType, WbsTreeContract::getWbsType, WbsTreeContract::getMajorDataType, WbsTreeContract::getPartitionCode,
@@ -1230,13 +1230,36 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         this.getConcealedWorkChildNode(resultAllNodes, initNode, contractId);
         resultAllNodes.addAll(initNode);
 
-        List<WbsTreeContractVO> result = new ArrayList<>();
+        /*List<WbsTreeContractVO> result = new ArrayList<>();
         for (WbsTreeContract resultAllNode : resultAllNodes) {
             WbsTreeContractVO vo = new WbsTreeContractVO();
             BeanUtil.copyProperties(resultAllNode, vo);
+            vo.setNodeName(resultAllNode.getNodeName());
+            vo.setFullName(resultAllNode.getFullName());
+            vo.setTitle(resultAllNode.getFullName());
             result.add(vo);
+        }*/
+        //return this.buildWbsTreeByStream(result, 0L); //全加载树
+
+        List<WbsTreeContractVO> result = BeanUtil.copyProperties(resultAllNodes, WbsTreeContractVO.class);
+        Map<Long, List<WbsTreeContractVO>> groupMaps = result.stream().collect(Collectors.groupingBy(WbsTreeContractVO::getParentId));
+
+        //半懒加载,实际上已经查出全部的数据了,过滤一下,懒得重新改接口;
+        List<WbsTreeContractVO> wbsTreeContractVOS;
+        if (StringUtils.isNotEmpty(parentId)) {
+            //返回子节点
+            wbsTreeContractVOS = groupMaps.get(Long.parseLong(parentId));
+        } else {
+            //返回根节点
+            wbsTreeContractVOS = groupMaps.get(0L);
+        }
+        for (WbsTreeContractVO wbsTreeContractVO : wbsTreeContractVOS) {
+            List<WbsTreeContractVO> child = groupMaps.get(wbsTreeContractVO.getId());
+            if (child != null && child.size() > 0) {
+                wbsTreeContractVO.setHasChildren(true);
+            }
         }
-        return this.buildWbsTreeByStream(result, 0L);
+        return wbsTreeContractVOS;
     }
 
     /**