Browse Source

Merge remote-tracking branch 'origin/master'

qianxb 2 years ago
parent
commit
7f486a465c

+ 1 - 9
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java

@@ -16,17 +16,10 @@
  */
 package org.springblade.resource.endpoint;
 
-import com.aspose.cells.SaveFormat;
-import com.aspose.words.DocumentBuilder;
-import com.itextpdf.text.Image;
-import com.itextpdf.text.Rectangle;
-import com.itextpdf.text.pdf.PdfWriter;
 import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.WorkbookFactory;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.oss.model.OssFile;
 import org.springblade.core.secure.annotation.PreAuth;
@@ -40,11 +33,10 @@ import org.springblade.resource.entity.Attach;
 import org.springblade.resource.feign.CommonFileClient;
 import org.springblade.resource.service.IAttachService;
 import org.springblade.resource.vo.NewBladeFile;
-import org.springblade.resource.vo.ToPdfVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-import java.io.*;
+
 import java.util.Objects;
 
 /**

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

@@ -210,10 +210,10 @@ public class ImageClassificationFileController extends BladeController {
                                                 float reduceMultiple = 0.5f;
                                                 bytes = FileUtils.resizeImage(bytes, reduceMultiple);
                                             }*/
-                                            bytes = FileUtils.resizeImage(bytes, 0f);
+                                            byte[] bytesNew = FileUtils.resizeImage(bytes, 0f);
 
                                             //创建图片
-                                            drawing.createPicture(anchor, workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG));
+                                            drawing.createPicture(anchor, workbook.addPicture(bytesNew, Workbook.PICTURE_TYPE_JPEG));
                                             //图片定位
                                             FileUtils.imageOrientation(sheet, anchor, i == 1 ? new DataVO(1, 28) : new DataVO(0, 0));
 

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

@@ -106,8 +106,8 @@ public class FileUtils {
         BufferedImage bi = ImageIO.read(new ByteArrayInputStream(srcImgData));
         /*int width = (int) (bi.getWidth() * reduceMultiple);
         int height = (int) (bi.getHeight() * reduceMultiple);*/
-        int width = 768;
-        int height = 1024;
+        int width = 600;
+        int height = 800;
         Image image = bi.getScaledInstance(width, height, Image.SCALE_SMOOTH);
         BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
         Graphics g = tag.getGraphics();

+ 41 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -37,6 +37,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author yangyj
@@ -282,7 +283,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             tableDatas.forEach(m->{
                 for(Map.Entry<String,Object> entry:m.entrySet()){
                     if(entry.getValue()!=null){
-                        map.merge(entry.getKey(), entry.getValue(), (v1, v2) -> v1 + ";" + v2);
+                        map.merge(entry.getKey(), entry.getValue(), (v1, v2) -> v1 + ";;" + v2);
                     }
                 }
             });
@@ -300,11 +301,43 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
     public FormData createFormDataFast(String name,String code,String values){
         if(StringUtils.isNotEmpty(code,values)){
-            FormData one=    new FormData(code, Arrays.stream(values.split("☆")).map(s->{
-                String[] t = s.split("_\\^_");
-                String[] c =t[1].split("_");
-                return  new ElementData(0,0,t[0],Func.toInt(c[1]),Func.toInt(c[0]));
-            }).collect(Collectors.toList()), null,StringPool.EMPTY);
+            String[] arr=code.split(":");
+            String coords = tec.getCoordinateMap().get(arr[0]).get(arr[1]);
+            List<Coords> coordsList = Stream.of(coords).flatMap(s -> Arrays.stream(s.split(";"))).map(s -> {
+                String[] xy = s.split("_");
+                return new Coords(xy[1], xy[0]);
+            }).collect(Collectors.toList());
+            List<ElementData> eds = new ArrayList<>();
+            if(StringUtils.isNotEmpty(values)){
+                String[] pages=values.split(";;");
+                for(int index=0;index<pages.length;index++){
+                    String pg=pages[index];
+                    if(Func.isNotBlank(pg)){
+                        String[] val = pg.split("☆");
+                        Map<String,Object> tmpMap = new LinkedHashMap<>();
+                        for(String s:val){
+                            String[] t = s.split("_\\^_");
+                            String[] c =t[1].split("_");
+                            tmpMap.put(StringUtils.join(code,0,index,Func.toInt(c[1]),Func.toInt(c[0]),StringPool.AT),t[0]);
+                        }
+                        for(Coords c:coordsList){
+                            Object data = null;
+                            String key =StringUtils.join(code,0,index,c.getX(),c.getY(),StringPool.AT);
+                            if(tmpMap.containsKey(key)){
+                                data =  tmpMap.get(key);
+                            }
+                            eds.add(new ElementData(index,0,data,c.getX(),c.getY()));
+                        }
+                    }
+                }
+
+            }
+            FormData one=   new FormData(code,eds, null,StringPool.EMPTY);
+//            FormData one=   new FormData(code, Arrays.stream(values.split("☆")).map(s->{
+//                String[] t = s.split("_\\^_");
+//                String[] c =t[1].split("_");
+//                return  new ElementData(0,0,t[0],Func.toInt(c[1]),Func.toInt(c[0]));
+//            }).collect(Collectors.toList()), null,StringPool.EMPTY);
             one.setEName(name);
             return one;
         }
@@ -563,7 +596,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 if(fd.getCoordsList().size()==1){
                     fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、")));
                 }else{
-                    copy(fd,values);
+                   // copy(fd,values);
                     for(int n=0;n<fd.getValues().size();n++){
                         fd.getValues().get(n).setValue(values.get(n));
                     }
@@ -801,7 +834,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                      Matcher m = RegexUtils.matcher("T\\(com.mixsmart.utils.CustomFunction\\)\\.(converge)\\(([^)]+)\\)",f);
                      while (m.find()){
                          List<FormData> target = getFormDataByCode(m.group(2));
-                         Object data =target.stream().flatMap(e->e.getValues().stream()).map(ElementData::getValue).collect(Collectors.toList());
+                         Object data =target.stream().flatMap(e->e.getValues().stream()).map(ElementData::getValue).filter(StringUtils::isNotEmpty).collect(Collectors.toList());
                          f=f.replace(m.group(),putDataWithKey(data));
                      }
                  }