|
@@ -37,6 +37,8 @@ public class FormulaTurnPoint implements FormulaStrategy {
|
|
|
private FormData cur;
|
|
|
static final List<String> KEYS;
|
|
|
private List<String> args;
|
|
|
+ /**从节点参数获取G8偏差范围的公式脚本*/
|
|
|
+ static final String F_DEV="WP['g8pcfw']";
|
|
|
|
|
|
static {
|
|
|
KEYS = new ArrayList<>(Arrays.asList(CD, YG, HS, QS, SC, SJ, GC, "备注"));
|
|
@@ -62,8 +64,6 @@ public class FormulaTurnPoint implements FormulaStrategy {
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
- /*从节点参数获取G8偏差范围*/
|
|
|
- String g8pcfw =Expression.parse("WP['g8pcfw']").calculate(tec.getConstantMap());
|
|
|
/*用来映射元素*/
|
|
|
LinkedHashMap<String, String> configMap = new LinkedHashMap<>(KEYS.size() * 2);
|
|
|
for (int i = 0; i < KEYS.size(); i++) {
|
|
@@ -71,27 +71,34 @@ public class FormulaTurnPoint implements FormulaStrategy {
|
|
|
}
|
|
|
/*原始数据转ListMap*/
|
|
|
List<Map<String, Object>> tableData=listMaps( tec, dataSourceMap,configMap);
|
|
|
- /*保存多组测量数据*/
|
|
|
+ /*数据分组*/
|
|
|
List<List<Map<String, Object>>> total = group(tableData);
|
|
|
- /* List<TurnPoint> result = ITurnPointCalculator.create(tableData, configMap,g8pcfw);*/
|
|
|
- List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,g8pcfw)).collect(Collectors.toList());
|
|
|
- /*V判断*/
|
|
|
+ /* 分组计算*/
|
|
|
+ List<List<TurnPoint>> result = total.stream().map(e->ITurnPointCalculator.create(e, configMap,Expression.parse(F_DEV).calculate(tec.getConstantMap()))).collect(Collectors.toList());
|
|
|
+ /*附加属性如:顶面和底面高程判断*/
|
|
|
forG8(result.stream().flatMap(Collection::stream).collect(Collectors.toList()), (Map<String, Object>)tec.getConstantMap().computeIfAbsent("G8", k -> new HashMap<>()),tec);
|
|
|
- int rowSize= cur.getCoordsList().size();
|
|
|
- List<Object> data = new ArrayList<>();
|
|
|
- for(List<TurnPoint> turnPoints:result){
|
|
|
- data.addAll(turnPoints2ListObj(turnPoints,configMap));
|
|
|
- int dummyRow=rowSize-turnPoints.size()%rowSize;
|
|
|
- if(dummyRow!=0) {
|
|
|
- data.addAll(Collections.nCopies(configMap.size() * dummyRow, StringPool.EMPTY));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ /*插值分页*/
|
|
|
+ List<Object> data = paginate(result,configMap);
|
|
|
+ /*数据回写*/
|
|
|
write(data,dataSourceMap,configMap.size());
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public List<Object> paginate( List<List<TurnPoint>> result,LinkedHashMap<String, String> configMap){
|
|
|
+ int rowSize= cur.getCoordsList().size();
|
|
|
+ List<Object> data = new ArrayList<>();
|
|
|
+ for(List<TurnPoint> turnPoints:result){
|
|
|
+ data.addAll(turnPoints2ListObj(turnPoints,configMap));
|
|
|
+ int dummyRow=rowSize-turnPoints.size()%rowSize;
|
|
|
+ if(dummyRow!=0) {
|
|
|
+ data.addAll(Collections.nCopies(configMap.size() * dummyRow, StringPool.EMPTY));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
private List<Map<String, Object>> listMaps(TableElementConverter tec,LinkedHashMap<String, FormData> dataSourceMap,LinkedHashMap<String, String> configMap){
|
|
|
CompositeDataAccess cda = new CompositeDataAccess(dataSourceMap);
|
|
|
List<Map<String, Object>> tableData = new ArrayList<>();
|
|
@@ -176,8 +183,8 @@ public class FormulaTurnPoint implements FormulaStrategy {
|
|
|
}
|
|
|
|
|
|
public void c8103(List<TurnPoint> data,List<NodeTable> nodeTableList,TableElementConverter tec){
|
|
|
- nodeTableList.stream().filter(e->e.getInitTableName().equals("m_20220928163111_1575040410223378432")).findFirst().ifPresent(t->{
|
|
|
- List<FormData> fds= tec.formDataMap.values().stream().filter(k->k.getTableName().equals("m_20220928163111_1575040410223378432")&&k.getCoordsList().size()>1).collect(Collectors.toList());
|
|
|
+ nodeTableList.stream().filter(e-> "m_20220928163111_1575040410223378432".equals(e.getInitTableName())).findFirst().ifPresent(t->{
|
|
|
+ List<FormData> fds= tec.formDataMap.values().stream().filter(k-> "m_20220928163111_1575040410223378432".equals(k.getTableName())&&k.getCoordsList().size()>1).collect(Collectors.toList());
|
|
|
/*[{"key":"#2","m":"垫石编号"},{"key":"#3","m":"顶面高程设计"},{"key":"#4","m":"顶面高程实测"},{"key":"#5","m":"顶面高程偏差"},{"key":"#6","m":"顶面四角高差实测"}]*/
|
|
|
FormData dsbh=null,dmgcsj=null, dmgcsc=null,dmgcpc=null,sjgcsc=null;
|
|
|
for(FormData u:fds){
|