Forráskód Böngészése

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf 2 éve
szülő
commit
af7d95c44c

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java

@@ -139,4 +139,6 @@ public interface WbsTreeContractClient {
     @GetMapping(API_PREFIX + "/selectContractTreeAll")
     List<WbsTreeContract> selectContractTreeAll(@RequestParam String contractId);
 
+    @GetMapping(API_PREFIX + "/getContractWbsTreeByParentId")
+    List<WbsTreeContract> getContractWbsTreeByParentId(@RequestParam String parentId,@RequestParam String contractId);
 }

+ 15 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -162,6 +162,10 @@ public class ImageClassificationFileController extends BladeController {
                 if (fileResult != null && fileResult.size() > 0) {
                     //需要删除的本地文件集合
                     List<String> removeList = new ArrayList<>();
+
+                    // 压缩到小于指定文件大小200kb
+                    double targetSize = 200 * 1024;
+
                     for (ImageClassificationFile file : fileResult) {
                         //获取图片文件流
                         String[] uris = file.getImageUrl().split(",");
@@ -188,6 +192,8 @@ public class ImageClassificationFileController extends BladeController {
                                             Sheet sheet = workbook.getSheetAt(0);
                                             Drawing<?> drawing = sheet.createDrawingPatriarch();
                                             ClientAnchor anchor = helper.createClientAnchor();
+                                            anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
+
                                             if (i == 0) {
                                                 anchor.setRow1(0);
                                                 anchor.setCol1(0);
@@ -196,8 +202,16 @@ public class ImageClassificationFileController extends BladeController {
                                                 anchor.setCol1(1);
                                             }
 
+                                            //获取文件流
+                                            byte[] bytes = CommonUtil.InputStreamToBytes(CommonUtil.getOSSInputStream(urls.get(i)));
+                                            //压缩文件大小
+                                            while (bytes.length > targetSize) {
+                                                float reduceMultiple = 0.5f;
+                                                bytes = FileUtils.resizeImage(bytes, reduceMultiple);
+                                            }
+
                                             //创建图片
-                                            drawing.createPicture(anchor, workbook.addPicture(CommonUtil.InputStreamToBytes(CommonUtil.getOSSInputStream(urls.get(i))), Workbook.PICTURE_TYPE_PNG));
+                                            drawing.createPicture(anchor, workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG));
                                             //图片定位
                                             FileUtils.imageOrientation(sheet, anchor, i == 1 ? new DataVO(1, 28) : new DataVO(0, 0));
 

+ 36 - 8
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1970,13 +1970,25 @@ public class InformationWriteQueryController extends BladeController {
 
         if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())) {
             //不是工序,则查询当前节点下的所有填报节点
-            List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(node.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
-            if (StringUtils.isNotEmpty(vo.getIsFirst())) {
-                //如果是首件列表请求,则删掉没有标记为首件的数据
-                queryDataResult.removeIf(data -> StringUtils.isEmpty(data.getFirstId()));
-            }
-            if (queryDataResult != null && queryDataResult.size() > 0) {
-                submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
+            if (node.getParentId() == 0){
+                String contractId = node.getContractId();
+                List<WbsTreeContract> treeS = wbsTreeContractClient.getContractWbsTreeByParentId(node.getId().toString(),contractId);
+                for (WbsTreeContract tree : treeS) {
+                    List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(tree.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
+                    if (queryDataResult != null && queryDataResult.size() > 0) {
+                        submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
+                        queryDataResult.clear();
+                    }
+                }
+            }else {
+                List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(node.getId().toString(), contract.getContractType(), StringUtils.isNotEmpty(vo.getContractIdRelation()) ? vo.getContractIdRelation() : vo.getContractId().toString());
+                if (StringUtils.isNotEmpty(vo.getIsFirst())) {
+                    //如果是首件列表请求,则删掉没有标记为首件的数据
+                    queryDataResult.removeIf(data -> StringUtils.isEmpty(data.getFirstId()));
+                }
+                if (queryDataResult != null && queryDataResult.size() > 0) {
+                    submitNodeKeyIds.addAll(queryDataResult.stream().map(QueryProcessDataVO::getPrimaryKeyId).distinct().collect(Collectors.toList()));
+                }
             }
         }
         //设置进集合中
@@ -2095,7 +2107,23 @@ public class InformationWriteQueryController extends BladeController {
                 contractIds.add(contractIdRelation);
             }
             if (contractIds.size() > 0) {
-                rootTreeNode = this.informationQueryService.queryContractTreeSupervision(contractIds, StringUtils.isNotEmpty(parentId) ? parentId : "0", 2);
+                if (StringUtils.isNotEmpty(parentId)) {
+                    //子节点
+                    rootTreeNode = this.informationQueryService.queryContractTreeSupervision(contractIds, parentId, 1);
+                } else {
+                    //根节点
+                    //classify = 2 时查不出数量统计,改成传1
+                    rootTreeNode = this.informationQueryService.queryContractTreeSupervision(contractIds, "0", 1);
+
+                    //设置根节点数量统计
+                    for (WbsTreeContractTreeVOS root : rootTreeNode) {
+                        List<WbsTreeContractTreeVOS> rootZi = this.informationQueryService.queryContractTreeSupervision(Func.toStrList(root.getContractIdRelation()), root.getId().toString(), 1);
+                        List<Long> collect = rootZi.stream().map(WbsTreeContractTreeVOS::getSubmitCounts).collect(Collectors.toList());
+                        Long reduce = collect.stream().reduce(0L, Long::sum);
+                        root.setSubmitCounts(reduce);
+                    }
+                }
+
             } else {
                 rootTreeNode = new ArrayList<>();
             }

+ 22 - 1
blade-service/blade-business/src/main/java/org/springblade/business/utils/FileUtils.java

@@ -12,7 +12,10 @@ import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.vo.DataVO;
 import org.springblade.core.tool.utils.IoUtil;
 
+import javax.imageio.ImageIO;
 import javax.servlet.http.HttpServletResponse;
+import java.awt.*;
+import java.awt.image.BufferedImage;
 import java.io.*;
 import java.net.URLEncoder;
 import java.util.Arrays;
@@ -96,6 +99,24 @@ public class FileUtils {
         }
     }
 
+    /**
+     * 压缩图片
+     */
+    public static byte[] resizeImage(byte[] srcImgData, float reduceMultiple) throws IOException {
+        BufferedImage bi = ImageIO.read(new ByteArrayInputStream(srcImgData));
+        int width = (int) (bi.getWidth() * reduceMultiple);
+        int height = (int) (bi.getHeight() * reduceMultiple);
+        Image image = bi.getScaledInstance(width, height, Image.SCALE_SMOOTH);
+        BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+        Graphics g = tag.getGraphics();
+        g.setColor(Color.RED);
+        g.drawImage(image, 0, 0, null);
+        g.dispose();
+        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+        ImageIO.write(tag, "JPEG", bOut);
+        return bOut.toByteArray();
+    }
+
     /**
      * 图片定位
      */
@@ -114,7 +135,7 @@ public class FileUtils {
             anchor.setRow2(ca.getLastRow());
         }
         int dx=(int)(sheet.getColumnWidthInPixels(anchor.getCol2())+3);
-        int dy=Units.pointsToPixel(sheet.getRow(anchor.getRow2()).getHeightInPoints())-50;
+        int dy=Units.pointsToPixel(sheet.getRow(anchor.getRow2()).getHeightInPoints())-5;
         anchor.setDx2(Units.pixelToEMU(dx));
         anchor.setDy2(Units.pixelToEMU(dy));
     }

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

@@ -16,7 +16,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.support.Kv;
-import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.ProjectInfo;
@@ -316,6 +316,14 @@ public class WbsTreePrivateController extends BladeController {
                                                             @RequestParam("projectId") String projectId) {
         List<WbsNodeTableVO> rs = wbsTreePrivateService.selectByNodeTable(parentId, wbsId, projectId);
         if (rs.size() > 0) {
+            for (WbsNodeTableVO r : rs) {
+                if (StringUtil.isBlank(r.getInitTableId())){
+                    WbsTree wbsTree = wbsTreeService.getById(r.getId());
+                    if (wbsTree != null){
+                        r.setInitTableId(wbsTree.getInitTableId().toString());
+                    }
+                }
+            }
             return R.data(rs);
         }
         return R.fail(200, "未查询到数据");

+ 8 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java

@@ -199,6 +199,14 @@ public class WbsTreeContractClientImpl implements WbsTreeContractClient {
         return this.wbsTreeContractService.selectContractTreeAll(Long.parseLong(contractId));
     }
 
+    @Override
+    public List<WbsTreeContract> getContractWbsTreeByParentId(String parentId,String contractId) {
+        LambdaQueryWrapper<WbsTreeContract> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(WbsTreeContract::getParentId,parentId);
+        wrapper.eq(WbsTreeContract::getContractId,contractId);
+        return this.wbsTreeContractService.list(wrapper);
+    }
+
     @Override
     public List<WbsTreeContractTreeVOS> queryCurrentContractLogList(String contractId) {
         ContractInfo contract = this.contractInfoService.getById(contractId);

+ 1 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -667,7 +667,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
         WbsTreePrivate firstNode = wbsTreePrivates.stream().filter(f -> f.getNodeType().equals(111)).findAny().orElse(null);
 
-        List<WbsTreePrivate> collect1 = wbsTreePrivates.stream().filter(f -> f.getNodeType().equals(1)).collect(Collectors.toList());
+        List<WbsTreePrivate> collect1 = wbsTreePrivates.stream().filter(f -> f.getNodeType().equals(1) && f.getParentId() != 0L).collect(Collectors.toList());
 
         List<WbsTreePrivate> collect4 = wbsTreePrivates.stream().filter(f -> f.getNodeType().equals(4)).collect(Collectors.toList());
 
@@ -678,7 +678,6 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 assert firstNode != null;
                 if (firstNode.getAncestors().contains(obj1.getId().toString())) {
                     fileTitleNames.append(obj1.getNodeName());
-                    break;
                 }
             }