package com.mixsmart.utils; import org.springblade.manager.dto.Coords; import org.springblade.manager.dto.ElementData; import org.springblade.manager.dto.FormData; import org.springblade.manager.entity.Formula; import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * @author yangyj * @Date 2022/7/14 15:55 * @description TODO */ public class FormulaUtils { public static Map triangleSquare(Object ranges){ Map map =new HashMap<>(); if(StringUtils.isEmpty(ranges)){ //z的默认取值范围 ranges="(0,15)"; } Matcher m = RegexUtils.matcher("(\\-?\\d+)(\\D)(\\+?\\d+)",ranges.toString()); if(m.find()) { System.out.println(); int min = StringUtils.handObj2Integer(m.group(1)); int max = StringUtils.handObj2Integer(m.group(3)); Integer[] r = pythagorean(min, max); map.put("X", String.valueOf(r[0])); map.put("Y", String.valueOf(r[1])); map.put("Z", String.valueOf(r[2])); } return map; } /** * result[0]^2+result[1]^2=result[2]^2 result[] 元素均为正整数 */ public static Integer[] pythagorean(Integer min,Integer max){ Integer[] result = null; List list = new ArrayList<>(); for(int i=1;i<=max;i++){ for(int j=1;j<=max;j++){ double tmp = Math.sqrt(Math.pow(i,2)+Math.pow(j,2)); int z= (int) Math.round(tmp); if(min values = (List) data; if(values.size()>fd.getValues().size()){ /*当生成的数据超过实际容量的时候,会自动追加页数*/ if(fd.getCoordsList().size()==1){ fd.getValues().get(0).setValue(values.stream().map(StringUtils::handleNull).collect(Collectors.joining("、"))); }else{ // copy(fd,values); for(int n=0;n overList=values.stream().skip(fd.getValues().size()).collect(Collectors.toList()); List coordsList = fd.getCoordsList(); int addPage=(int)Math.ceil((double)overList.size()/(double)coordsList.size()); fd.setAddPages(addPage); ElementData last =fd.getValues().get(fd.getValues().size()-1); int indexBase=last.getIndex()+1; List addList= new ArrayList<>(); for(int i=0;ie.setValue(data)); }else{ fd.getValues().get(0).setValue(data); } } } }