Browse Source

公式相关

yangyj 2 years ago
parent
commit
b3e53ff657

+ 11 - 10
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -18,10 +18,7 @@ import com.jfireel.expression.token.TokenType;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.poi.ss.formula.functions.T;
 import org.checkerframework.checker.units.qual.A;
-import org.springblade.core.tool.utils.CharPool;
-import org.springblade.core.tool.utils.CollectionUtil;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.*;
 import org.springblade.manager.dto.ElementData;
 
 import java.io.File;
@@ -1912,17 +1909,15 @@ public class CustomFunction {
 			List<Object> list = obj2ListNe(o);
 			int index =0;
 			if(NumberUtil.isNumber(indexObj.toString())){
-				index=StringUtils.handObj2Integer(indexObj);
+				index=StringUtils.handObj2Integer(indexObj)-1;
 			}else if(StringUtils.isEquals("last",indexObj)){
 				index=list.size()-1;
 			}
 			if(ListUtils.isNotEmpty(list) ){
-			    if(index>0){
-			    	if(list.size()>index){
-			    		return list.get(index);
-					}
+				if(list.size()>index&&index>=1){
+					return list.get(index);
 				}else{
-			       return list.get(list.size()+index);
+					return  list.get(list.size()-1);
 				}
 			}
 		}else{
@@ -1932,6 +1927,7 @@ public class CustomFunction {
 	}
 
 
+
 	/**
 	 * @Description  关键字转换
 	 * @Param [cn]
@@ -1968,6 +1964,11 @@ public class CustomFunction {
 		List<Object> list = obj2List(obj);
 		return  list.parallelStream().filter(StringUtils::isNotEmpty).collect(Collectors.toList());
 	}
+	/*obj2ListNe别名*/
+	public static List<Object> objToListNe(Object obj){
+		 return obj2ListNe(obj);
+	}
+
 
 	/**
 	 * @Description 过滤掉List中的空对象

+ 8 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/TableElementConverter.java

@@ -128,6 +128,13 @@ public class TableElementConverter implements ITableElementConverter {
                 /*初始化元素数据集*/
                 List<ElementData> eds =fd.getValues();
                 String coords = this.coordinateMap.get(fd.getTableName()).get(fd.getKey());
+                if(Func.isNotBlank(coords)) {
+                    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());
+                    fd.setCoordsList(coordsList);
+                }
                 for(int i=0;i<kms.size();i++){
                     /*每一页都有自己对立的Id*/
                     KeyMapper km=kms.get(i);
@@ -146,9 +153,7 @@ public class TableElementConverter implements ITableElementConverter {
                             }
                         }
                         if(Func.isNotBlank(coords)){
-                            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());
-                            fd.setCoordsList(coordsList);
-                            for(Coords c:coordsList){
+                            for(Coords c:fd.getCoordsList()){
                                 Object val = null;
                                 String key =StringUtils.join(fd.getCode(),groupId,i,c.getX(),c.getY(),StringPool.AT);
                                 if(tmpMap.containsKey(key)){

+ 0 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -548,13 +548,6 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
 
     @Override
     public List<KeyMapper> getKeyMapperList(List<Long> ids) {
-//        List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList("select b.init_table_name as tableName,a.p_key_id as pkId ,c.e_key as field,c.id  as fieldId,d.scope,d.formula_id as formulaId " +
-//                "from m_wbs_tree_contract a " +
-//                "INNER JOIN m_wbs_tree b on (a.old_id=b.id or a.id=b.id)  " +
-//                "INNER JOIN m_wbs_form_element c on  c.f_id=b.init_table_id " +
-//                "left JOIN m_element_formula_mapping d on c.id=d.element_id  " +
-//                "where a.p_key_id in("+ids.stream().map(String::valueOf).collect(Collectors.joining(","))+") " +
-//                "ORDER BY b.init_table_name,d.scope");
         List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList(" select a.init_table_name as tableName,a.p_key_id as pkId ,c.e_key as field,c.e_name as eName,c.id  as fieldId ,d.scope,d.formula_id as formulaId " +
                 "from m_wbs_tree_contract a " +
                 "inner join m_table_info b on a.init_table_name=b.tab_en_name " +